c++指针问题(绝对有难度哦)

2024-12-10 23:58:04
推荐回答(6个)
回答1:

你定义的变量是全局的,没有在栈里察凳。
顺序是这样的 str[0], str[1], p
然后p的指向是str[0], p+2, 其实指向的就是p, 赋值后 p的值为3。
最后cout的时候 取了地址为3的内存,显然这是非法操作,这个地址是给操作系统留的不允许访问的,固然造成败消旅死机问题。
之所以改成char没问题,是因为字节对齐的问题,关桥野于字节对齐请自己百度学习。 不用谢。
楼主都说了,跟越界没关系。你们还得意的说什么 没有2啊,我觉得真2.

回答2:

这还不是越界
p[2]=3
改陆雀老为早升
p[1]=3

cout<改为
cout<

回答3:

难度咐晌你好难度再见
p取不到2只能取到1。芦缓因为是从0开始的。0开衡哗锋始 + 有两个 = 这两个是0和1
于是没2

回答4:

p[2]=3; p[2]越界了 ,既然越界了,那就不要考虑结果了,什么结果都是可能的

回答5:

明明就是越界啊

回答6:

这还不越界 ? 数组容量为2 , 你存取第3个元素就是越界啊