为什么说是‘定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组’求解释

若有定义int(*pt)[3]定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组... 若有定义int(*pt)[3]

定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组
展开
 我来答
hansongfan
2012-03-20 · 超过10用户采纳过TA的回答
知道答主
回答量:28
采纳率:0%
帮助的人:29.4万
展开全部
告诉你一个简单的办法
首找到名子也就是 pt,先名字看右面, 这里由于加了括号 所以右面什么都没有,那就再看左面。
这里int (*pt)[3]
pt 左面有 *号,所以pt是 * (point) ,好像国内叫指针吧(不好意思我是在国外学的,国内的术语还不是很熟悉),剩下的就是变量形式,变量形式 是 int [3].
也就是说 pt 是 int [3]型的 指针
还有 数组的名称 其实是point常数(按国内的叫法,可能叫指针常数),所以 int arr[][3] 和 int (*pt)[3] 其实是一个意思。
再举个例子 int *pt(int a,int b)
首先找到名字 pt 先看名字的右面 ,右面有() 号,所以pt 是函数,剩下的就是形式 int *
所以pt 是 int *型的 函数。
记住 先找到名子,先看名子的右面,如果有可以告诉这个东西是什么的符号,如[],(),那它就是那个,如果没有再看左面,如 * 符号,剩下的就是 这个名称的 形式。
像int a[][3]
a是 int [3]型 的数组。
黑暗边缘7b
2012-03-19 · TA获得超过225个赞
知道答主
回答量:25
采纳率:0%
帮助的人:18.3万
展开全部
纠正一下,它可以指向有三个整数元素的一维数组
int a[][3] = {{1,2,3},{4,5,6}};
int (*pt)[3] = a; //表示指向一维数组a[0]; 同int (*pt)[3] =&a[0];
pt = a+1;//表示指向一维数组a[1];
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式