关于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是指向哪的??有哪位大神知道
展开
7个回答
展开全部
p 指向 a[2],不过被你强制改为 (int *) 了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
p指向a数组地三个a[2],数组是从下标0开始的a[0]
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
指针指向a的第三个元素地址。
但是int类型指向char数据,在读取值时会出现问题。
但是int类型指向char数据,在读取值时会出现问题。
追问
关键是强制类型转换之后呢?int类型是两个字节,而char是一个字节。p是不是可以操作a[2]地址开始的两个字节?
追答
对,会向后延伸。c语言不进行检查。
另外现在int类型多是4字节。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a[2]取地址,然后复制给P,P指向a[2].
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
指向a[2]啊
p=(int *)&a[2]; 这一句将a[2]的地址强转成int *赋给p
p=(int *)&a[2]; 这一句将a[2]的地址强转成int *赋给p
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询