c语言关于指针数组的问题?
#include <stdio.h>
int main(void)
{
int i;
int a=10;//0xff00
int b=20;//0xff04
int c=30;//0xff08
//指针数组 指针类型的数组
int* arr[3]={&a,&b,&c};//arr[0]->0xff00
//指针数组存储指针变量
*arr[2]=123;
for(i=0;i<3;i++)
{
printf("%d ",*arr[i]);
}
return 0;
}
问为什么不可以定义int* arr[2]={&a,&b,&c},这样会出错,难道不是a[0] a[1] a[2],依次取abc的地址吗
你的这个与指针没有关系,是c语言最基础的内容,只与数组有关
你若定义
int* arr[2];
那么,arr只能用arr[0],arr[1],它不能用arr[2]的
这个2的意思,表示arr有两个元素,而不是最大下标为2
对所有数组,C定义的下标不是最大下标,而是元素个数,最大下标要减一的
下一篇:js中后面的$未定义
热门标签: