int a[10],char*p=a,为什么C++中可以用p[i]来给数组啊赋值,而不是a[i]呢

我感觉着地方哟错误啊
2025年03月18日 13:33
有3个网友回答
网友(1):

int a[10];数组名即是数组的首地址;
char*p=a;是错误的;char型指针只能指向char型数据,这里指向一个int型数组是不正确的;改为int*p=a;

p指向a数组,也就是说p和a是相等的,所以用p[i] a[i]都可以赋值的

网友(2):

首先,a是整型变量,你把它付给字符变量本身就是错误的。
其次用P[i]给数组赋值的是时候,它是指数组第i个元素的地址,这个你要搞清楚了。
然后a[i]指的是数组的第i个元素,不是地址。
指针它是c语言中的重点,希望我说的你能理解!

网友(3):

c++ primer中说, 只属于隐式转换的一种,数组名转换为指向该数组第一个元素的一个指针变量。但是这里应该是错的,应该改成int *p = a;