书上看到两种定义数组指针的方式。
char a[10];
char (*p)[10]; //方式1
char *q; //方式2
p=a; //方式1
q=a; //方式2
我试了一下*(p+1)是不行的。*(q+1)是可以的。为什么?有什么区别?
为什么p+1是指向的地址+10*sizeof(char)?谢谢
追答指针值加1,加的是指向的内存数据类型的内存大小
因为p的指向的类型是包含10个字符的数组,所以+1 就是 + 10*sizeof(char)
char a[10];char (*p)[10]; //方式1char *q; //方式2
问一下方式1是定义了1个数据还是10个数据?
定义的p是一个指针啊,一个指向char[10]数组的指针
char a[10] 才是有是个数据