一、 int (*p)[4];
表示p是一个指针变量,它指向包含4个整型元素的一维数组。注意*p两边的括号不能少,如果写成 *p[4],由于 [] 运算级别高,因此 p 先于 [4] 结合,p[4] 是定义数组的形式,再与前面的 * 号结合, * p [4] 就是指针数组;
二、
char *string = “I love china!”;
等价于下面两行
char *string ;
string = “I love china!”;
在输出时要用 printf(“%s\n”,string);
三、
危险输入字符串的方法:
char *p;
scanf(“%s”,p); 这种方法不提倡使用!
正确方法:
char *s;
char str[10];
s = str;
scanf(“%s”,s);
四、
用指针变量指向一个格式字符串,它可以代替 printf 函数中的格式字符串。例如
char *format;l
format = “a = %d,b = %f\n”;
printf(format,a,b);
相当于 printf(“a = %d,b = %f\n”,a,b);
这种 printf 函数称为可变输出格式输出函数,也可以用字符数组实现。
如 char format[] = “a = %d,b = %f\n”;
printf(format,a,b);
但注意不能采用赋值语句对数组整体赋值,
如 char format[];
format = “a = %d,b = %f\n”;
因此,用指针变量指向字符串的方式更为方便。
五、指向函数的指针
定义方式 : 数据类型 (*指针变量名)(函数参数列表);
这里的数据类型是指函数返回值的类型;
六、返回指针值的函数
定义方式 : 类型名 *函数名(参数表列); //P265
七、指针数组
定义方式 : 类型名 *数组名[数组长度];
八、指向指针的指针
char **p;