凌阳教育专注嵌入式教育14年,良心教育,有担当,有诚信,值得信赖的教育品牌,欢迎访问官网http://www.sunplusedu.com

经常容易混淆的指针

上一篇 / 下一篇  2016-08-24 17:17:24

  凌阳教育的老师为您总结经常容易混淆的指针:

  1、 int *a[10];

  这是个指针数组,数组a中有10个整型的指针

  a[0]~a[9]

  2、int (*a)[10];

  数组指针变量,它是个指针变量。它占4个字节,存地址编号。

  它指向一个数组,它加1的话,指向下个数组。

  3、 int **p;

  这个是个指针的指针,保存指针变量的地址。

  它经常用在保存指针的地址:

  常见用法1:

  int **p

  int *q;

  p=&q;

  常见用法2:

  int **p;

  int *q[10];

  分析:q是指针数组的名字,是指针数组的首地址,是q[0]的地址。

  q[0]是个int *类型的指针。 所以q[0]指针变量的地址,是int **类型的

  p=&q[0]; 等价于p=q;

  例:

  void fun(char**p)

  {

  int i;

  for(i=0;i<3;i++)

  {

  printf("%s\n",p[i]);//*(p+i)

  }

  }

  int main()

  {

  char *q[3]={"hello","world","China"};

  fun(q);

  return 0;

  }

  -----------------------------------------------------

  ------------------------------------------------------

  1、int *f(void);

  注意:*f没有用括号括起来

  它是个函数的声明,声明的这个函数返回值为int *类型的。

  2、int (*f)(void);

  注意*f用括号括起来了,*修饰f说明,f是个指针变量。

  f是个函数指针变量,存放函数的地址,它指向的函数,

  必须有一个int型的返回值,没有参数。


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar