你只要记住指针变量始终指向一个(变量或const)地址,那么指向指针的指针(有人通常叫做2级指针)它肯定指的是一个指针的地址了。
数组名就是一个数组的首地址,如果用指针操作数组,可以先将数组名赋给一个指针,然后通过指针的增量或减量便可对数组中的元素进行超作。
由于工作,N久都没来了!
红字部分正确
至于为什么,有三种情况
1.定义错(如v)
2.类型不匹配
3.对非左值赋值
非常感谢穆扬先生的解答.
下面的已改正了..
那请问:如有以下定义:
int *p;
int **q;
int *s[3];
int (*v)[3]; -----已改正;
int a[3][3];
int b[3];
哪条语句能正确的应用呢?为什么?
(A)q=&p; (B)q=&a[0]; (C)p=a[0];q=&p; (D)s[0]=a[0];
(E)s=b; (F)v=a[0]; (G)v=a; (H)v=&a[0];
(I)v=b; (J)q=a; (K)q=&b; (L)v=&b;