int a[10],为什么++a不能表示a[1]的地址

2025-03-02 08:14:35
推荐回答(1个)
回答1:

数组的名称并不是变量,int a[10];是申请了a[0]~a[9]这10个变量,在编译程序看来,a只是个标号,代表这个数组的首地址,程序中用到a的地方就用数组首地址来替换计算,++a要求++后面必须是个变量名,所以++a是不可以的,要写也必须写++a[0]之类的才对
另外如果int a[10],*p; 指针变量要赋值成a数组的起始地址,就可以:p=&a[0];或者p=a;
然后用++p;来使p指向a[1],也就是存放a[1]的地址。