指针易混肴的定义方式详解

来源:互联网 发布:java jar 设置jdk 编辑:程序博客网 时间:2024/06/06 16:33

一、 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;

0 0
原创粉丝点击