今天学习的时候,看到有这么写的代码
int a = 0;
int* p = &a;
int arr[10] = {};
arr[*p] = 50;
arr[*p + 1] = 60;
这么写之后
为啥arr[1]、arr[2]可以等于50、60?
为啥可以arr[*p]??数组的里面为啥是个指针?
我差了赋值之后之前的地址,也没有改变。
所以不太明白为什么可以 这么做。
请大佬帮助一下。
今天学习的时候,看到有这么写的代码
int a = 0;
int* p = &a;
int arr[10] = {};
arr[*p] = 50;
arr[*p + 1] = 60;
这么写之后
为啥arr[1]、arr[2]可以等于50、60?
为啥可以arr[*p]??数组的里面为啥是个指针?
我差了赋值之后之前的地址,也没有改变。
所以不太明白为什么可以 这么做。
请大佬帮助一下。
因为 p指向a
所以*p就是a,也就是0
arr[*p] = 50;
就是
arr[0] = 50;
arr[*p + 1]
就是
arr[1]