c数组
#include <stdio.h>
int main(void)
{ int nVar1=100,nVar2=200,nVar3=300;
int *Array[2];
Array[0]=&nVar1;
Array[1]=&nVar2;
Array[2]=&nVar3;
printf("%d\n",**Array-1);
return 0;
}
请问这里的Array[2]=&nVar3;怎么解释?
[解决办法]
把Var3这个变量的地址赋给Array这个指针数组的第三项。
[解决办法]
Array[2]=&nVar3; //错误
int *Array[2];你这样定义的指针数组,里面只有两个值。Array[2]这样取,越界!
[解决办法]
就如int *p = &nVar3;
这里的Array[2]相当与p,指针数组里面的每一个元素就是个单独的指针
[解决办法]
越界了吧
[解决办法]
定义的是指向整形的指针数组,那么数组中的每一项都应该是指向整形的指针,
但是nVar是整形变量,所以用&nVar来取得该变量的地址存到数组中。
[解决办法]
声明应该int *Array[3];
[解决办法]
敢问这个能通过吗?
[解决办法]
和前两个理解一样,只是越界
[解决办法]
数组越界~
[解决办法]