二维数组指针输出
发表在C语言图书答疑 2017-01-16
是否精华
版块置顶:

第一张图是输出第二行元素,第二图是输出第三行元素,不是太明白指针如何指向第二行与第三行的操作,老师详细讲下。

分享到:
精彩评论 6
again
学分:250 LV4
2017-01-16
沙发

有代码的要上代码, 不要贴图。

这样的图片,如果我要调试代码,还得手抄一遍。

again
学分:250 LV4
2017-01-16
板凳

与指向第一行是一样的。

二维数组相当于 一维数组 的 数组。

数组名相当于首元素的指针。

以一维数组为例,知道了首元素的指针,可以使用 *p 取第一个元素;

下一个元素是  *(p + 1)

蕞噯笑啲秂_1480314577
学分:35 LV2
2017-01-16
地板

老师,*((*p)+j)这句话是说先运行括号里的*p,然后运算括号+j,在运算外面的*吗?外面的*是指哪一个的?;还有%5d为什么要在d前面加上个5的?

again
学分:250 LV4
2017-01-17
4L

蕞噯笑啲秂_1480314577 发表于2017-01-16 21:29

老师,*((*p)+j)这句话是说先运行括号里的*p,然后运算括号+j,在运算外面的*吗?外面的*是指哪一个的?;还有%5d为什么要在d前面加上个5的?

括号的优先级是最高的。所以被括号括起来的最先执行。


%5d的意思是,输出的整数要补足5位,如 1,会输出 1加四个空格,11会输出11加3个空格。

蕞噯笑啲秂_1480314577
学分:35 LV2
2017-01-17
5L

还有(*(p+i)+j) 和  *((*p)+j) 也就是和a【i】【j】等价的吗?   那个第三行输出要声明(*p)【5】是为什么的而第二行输出却不用声明的呢?

again
学分:250 LV4
2017-01-18
6L

蕞噯笑啲秂_1480314577 发表于2017-01-17 13:12

还有(*(p+i)+j) 和  *((*p)+j) 也就是和a【i】【j】等价的吗?   那个第三行输出要声明(*p)【5】是为什么的而第二行输出却不用声明的呢?

你猜的对。

第二行不用声明,是因为 数组名相当于一个那个 *p 指针        

首页上一页 1 下一页尾页 6 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照