int a[2][3]={1,2,3,4,5,6};int *p;p=a[0];输出*(p+1)为2;p=a;输出*(p+1)也为2;请问下p=a[0]和p=a含义有区别么?
a是二维数组,用指针操作时可看作是一个二级指针。也就是说a是二级指针,而您声明的int *p是一级指针。把p=a是类型不匹配的,有的编译器可以编译(这里进行了强制转换p=(int *)p),有的不行,严格来说,这是错误的。a[0]是一级指针。p=a[0]才是正确的。
太感谢了,关于二级指针方面的内容哪里有更详细的介绍??谭的那本书里好象没这个概念哦。
不要说没有,指针的指针不就是二级指针吗.指针数组和数组指针的区别.指针数组就是指数组中的每一个元素是一个指针.int *p[10];数组指针就是指向数组的指针 int (*p)[10];你这里定义一个二唯数组就应该定义一个指向数组的二级指针来代替数组进行操作.