nullnull16.2.5 指针数组*
所谓指针数组,就是一个数组,其中的每个元素都是指针。其定义格式:
类型 *数组名[长度];
如:int *u[5]; /* 定义一个数组u,它有5个元素,每个元素的值都是指针 */
null又如:下面的一个数组city可以存放三个字符串的首地址。
char *city[3];
city[0]="Beijing";
city[1]="Shanghai";
city[2]="Hangzhou";
printf("%s %s %s\n", city[0], city[1],city[2]);
16.2.6 指针的指针*
16.2.6 指针的指针*
1. 指针的指针
如果变量u是一个指针变量,那么&u称为“指针的指针”。或者说,“指针的指针”指向一个指针变量。
可以定义一种变量存放“指针的指针”,我们称其为“指向指针”的指针变量。其定义格式:
类型名 **变量名;
null 例如下面语句定义了几个变量,其中v是指向指针的指针变量:
int a,b,c, *p,*q, **v;
q=&b; /* q指向b */
v=&q; /* v指向q */
注意上面的v=&q语句不能写成v=&(&b),因为&b是一个常量,它是不能求地址的。
另外,不能这样赋值:v=&a,因为v只能指向指针变量。
null2. 指针的指针的指向
假如v是指向指针的指针变量,那么*v是一个指针变量,我们把*v的指向*(*v)写成**v。**v表示“‘v所指向的变量’所指向的变量”。 nullint x=10,y=20,*a,*b,**e;
a=&y;
b=a;
e=&b;
**e=30;
a=&x;
**e=40;
执行结果x=10,y=40