A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王雪冬 中级黑马   /  2014-4-9 14:38  /  749 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

做练习时遇见的问题:
第一组:
int (*p)[5]和int *p[5]。
第二组:
int *f( int i, int j)和 int (*p)( int i ,int j)

关于符号"*",有时候搞不清楚。帮忙取分了上面两组后,讲解一下  *  符号使用时容易疑惑的地方。

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

2 个回复

倒序浏览
第一组:int *p[5],首先它是一个数组,它的大小是5,它里面存放的数据类型是int *,也就是整型指针。  所以它叫指针数组、 (从右向左解析这个表示)
int (*p)[5],首先p是一个指针,指向大小为5的数组,因此这叫数组指针。(括号优先)
第二组和第一组理解差不多,只是把数组换成了参数而已。
(个人理解,没有把握)

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
二楼说的很对啊int *f( int i, int j):这应该是int *类型,有两个参数的方法
int (*p)( int i ,int j):这里就相当于声明一个指针指向一个函数

  1. int sum(int a,int b){
  2. return a+b;
  3. }
  4. int (*p)(int ,int); //========
  5. p=sum;
  6. //利用p间接调用sum函数
  7. (*p)(5,6)//取函数值
  8. p(5,6)//不取
复制代码



回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马