关于c语言指针。比如char a[3];然后int *p;p=(int *)&a[2];现在这个指

关于c语言指针。比如chara[3];然后int*p;p=(int*)&a[2];现在这个指针p是指向哪的??有哪位大神知道... 关于c语言指针。比如char a[3];然后int *p;p=(int *)&a[2];现在这个指针p是指向哪的??有哪位大神知道 展开
 我来答
慧当领绝顶
2013-09-12 · TA获得超过139个赞
知道小有建树答主
回答量:100
采纳率:0%
帮助的人:88.7万
展开全部
指向a[2],就是数组a的第三个元素的地址。

&a[2]就是a[2]的地址,前面的(int *)是强制类型转换,把地址转换成(int *)类型,再赋值给p。
更多追问追答
追问
关键是强制类型转换之后呢?int类型是两个字节,而char是一个字节。p是不是可以操作a[2]地址开始的两个字节?
追答
是这个意思。

不过int一般是4个字节,好像有的编译器是2个字节,你可以打印sizeof(int)看看。
百度网友a5eb3e1
2013-09-12 · TA获得超过4447个赞
知道大有可为答主
回答量:3486
采纳率:60%
帮助的人:2606万
展开全部
p 指向 a[2],不过被你强制改为 (int *) 了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shenhuan111
2013-09-12 · TA获得超过537个赞
知道小有建树答主
回答量:254
采纳率:50%
帮助的人:147万
展开全部
p指向a数组地三个a[2],数组是从下标0开始的a[0]
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
悠然向南山33
2013-09-12
知道答主
回答量:3
采纳率:0%
帮助的人:2.2万
展开全部
指针指向a的第三个元素地址。
但是int类型指向char数据,在读取值时会出现问题。
追问
关键是强制类型转换之后呢?int类型是两个字节,而char是一个字节。p是不是可以操作a[2]地址开始的两个字节?
追答
对,会向后延伸。c语言不进行检查。
另外现在int类型多是4字节。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2013-09-12 · 超过30用户采纳过TA的回答
知道答主
回答量:180
采纳率:0%
帮助的人:95.8万
展开全部
a[2]取地址,然后复制给P,P指向a[2].
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9be3a97
2013-09-12
知道答主
回答量:14
采纳率:0%
帮助的人:3.9万
展开全部
指向a[2]啊
p=(int *)&a[2]; 这一句将a[2]的地址强转成int *赋给p
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式