c语言问题 int i,x[3][4]; i=*(*(x+1)+1)是什么意思,请详细解释下。谢
答案:4 悬赏:20 手机版
解决时间 2021-04-26 14:58
- 提问者网友:溺爱和你
- 2021-04-26 06:29
c语言问题 int i,x[3][4]; i=*(*(x+1)+1)是什么意思,请详细解释下。谢
最佳答案
- 五星知识达人网友:七十二街
- 2021-04-26 07:09
x是int *[3][4]类型的变量起始地址
x+1是第1维的增加,地址增加的尺寸为int[4],x+1相当于&x[1][0]即第2行起始地址
*(x+1)取得x数组第2行起始地址*(x+1)+1后面的加1是访问第2行第2个元素,相当于加第2维下标,即指向x[1][1]
*(*(x+1)+1)等于x[1][1]中存放的数据
x+1是第1维的增加,地址增加的尺寸为int[4],x+1相当于&x[1][0]即第2行起始地址
*(x+1)取得x数组第2行起始地址*(x+1)+1后面的加1是访问第2行第2个元素,相当于加第2维下标,即指向x[1][1]
*(*(x+1)+1)等于x[1][1]中存放的数据
全部回答
- 1楼网友:冷風如刀
- 2021-04-26 10:08
额额额额,数组和指针结合,比较难,尤其是二维数组,
这样写是有问题的,因为哈,二维数组x并没有初始化,
具体啥意思,我得再研究研究,要是初学者的话,可以先忽略这部分,
PS:微信订阅号 学习C语言,可以关注一下哈,大家一起学,
- 2楼网友:杯酒困英雄
- 2021-04-26 08:45
我们可以把x[3][4]看成一个行3列4的表格,只不过它的序号是从0开始,x就是这个表格的首地址即行0列0的地址,所以x+1就是行1的行地址,而*(x+1)则是取行1的值即列的首地址即列0的地址所以*(x+1)+1即行1列1的地址,再对他们取值则是行1列1的值。
- 3楼网友:动情书生
- 2021-04-26 08:14
x 表示: 二级指针,其值与 x[0][0] 的地址值相同
x+1 表示: 二级指针,其值与 x[1][0] 的地址值相同
*(x+1)表示: 一级指针,其值与 x[1][0] 的地址值相同
*(x+1)+1 表示: 一级指针,其值与 x[1][1] 的地址值相同
*(*(x+1)+1) 表示: x[1][1] 的值
x+1 表示: 二级指针,其值与 x[1][0] 的地址值相同
*(x+1)表示: 一级指针,其值与 x[1][0] 的地址值相同
*(x+1)+1 表示: 一级指针,其值与 x[1][1] 的地址值相同
*(*(x+1)+1) 表示: x[1][1] 的值
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯