凌阳教育的个人空间 https://blog.eetop.cn/204849 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

经常容易混淆的指针

已有 504 次阅读| 2016-8-24 17:17

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

  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型的返回值,没有参数。


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 0

    好友
  • 1

    获赞
  • 3

    评论
  • 3815

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-3-29 04:40 , Processed in 0.012303 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部