读书人

菜菜提问-关于指向多维数组的指针疑点

发布时间: 2012-07-04 19:33:55 作者: rapoo

菜菜提问-关于指向多维数组的指针疑问 【刚那个超出回复次数】


晕 终于发上来了
我的主要疑问
书上说:
pt指向一个int值,ar1指向3个int值。

既然这样说
那么ar[0]就是指向1个值的吗?
ar[0]本身不也是一个行地址,它也是包含了3个元素的一个数组。
怎么ar[0]就合法 ar1就不合法了

而且ar1=&ar1[0][0]
这么一个地址怎么不能赋给pt呢

恳请指点


[解决办法]
我有个疑问,你在哪看到的 ar1=&ar1[0][0]

你定义的ar1[2][3],是二维数组数,里面有6个int 值,而不是3个,也就是说这个二维数组里面有6个元素
还有,pt指向的是一个地址,而不是一个值,ar1[0][0]代表的是一个元素的值,但&ar1[0][0]代表的是一个地址,你这本书在谁写的啊,太坑了


[解决办法]
我有个疑问,你在哪看到的 ar1=&ar1[0][0]

你定义的ar1[2][3],是二维数组数,里面有6个int 值,而不是3个,也就是说这个二维数组里面有6个元素
还有,pt指向的是一个地址,而不是一个值,ar1[0][0]代表的是一个元素的值,但&ar1[0][0]代表的是一个地址,你这本书在谁写的啊,太坑了


[解决办法]
如果你用输出函数cout<<pt<<endl; 输出结果是一个16位的地址

如果你用输出函数cout<<*pt<<endl; 输出结果就是一个int类型的值,前提是你给指针pt赋了正确的地址
[解决办法]
贴出你疑惑的指针问题的完整测试代码, 方便给你说.
[解决办法]

探讨
晕 终于发上来了
我的主要疑问
书上说:
pt指向一个int值,ar1指向3个int值。

既然这样说
那么ar[0]就是指向1个值的吗?
ar[0]本身不也是一个行地址,它也是包含了3个元素的一个数组。
怎么ar[0]就合法 ar1就不合法了

而且ar1=&ar1[0][0]
这么一个地址怎么不能赋给pt呢

恳请指点

[解决办法]
* 号和pa先结合,说明pa是一个指针,跳出括号,看左面,是【3】说明指针指向的是一个包含有三个元素的数组,再看右面,是int 说明数组内元素的类型是int型,
右左法则

读书人网 >C语言

热点推荐