新手,请c++高手注释下面语句,谢谢。不好意思这两天光问问题了没分了。

来源:百度知道 编辑:UC知道 时间:2024/06/04 12:13:24
const int arr[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
int *p1 = arr;
for(int i = 0;
i < sizeof(arr) / sizeof(int); ++i)
{ *(p1 + i) = arr[9-i]; }

#include <iostream>
using namespace std;
int main()
{
int arr[]={ 1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
int *p1 = arr;
int i = 0;
for(i = 0; i < sizeof(arr) / sizeof(int); ++i)
{
*(p1 + i) = arr[9-i];
}

for(i = 0; i < sizeof(arr) / sizeof(int); ++i)
{
cout<<*(p1 + i)<<" ";
}
cout<<endl;
return 0;
}

//已经给你调了,没有BUG。

const int arr[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
int *p1 = arr;
for(int i = 0;
i < sizeof(arr) / sizeof(int); ++i)
{ *(p1 + i) = arr[9-i]; }

等价于:
const int arr[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
int *p1 = arr;
int len = sizeof(arr) / sizoef(int);//写成sizeof(arr) / sizeof(arr[0])好一点,因为如果不是int数组呢?
for(int i = 0; i < len; i++)
{//也不是什么交换了,看见是直接覆盖
arr[i] = arr[9 - i];//因为*(p1 + i)等价于p1[i],而p1与arr值是一样的
}