
c++字符串问题,求解释
3个回答
展开全部
&a——是存放数组名a的地址,也是常字符串nigeshabi的串地址,它的值也等于a,所以打出来是一个8位16进制数。
&a+1——是a字符串后面的那个地址,就是a有15个元素,那么&a+1是第16个元素的地址,已经不受a约束了。
&a[1]——就是字符nigeshabi中第一个i的地址,所以输出是igeshabi。
对于1和2,换一台机器就不是那个数了,因为数据在内存中的安排是随机的。图片中的第一、二行隐隐约约好像第一行最后是40,第二行是41,前面全一样——这是不可能的;若确实是这样,那第二行输出语句中就不是&a+1而是&(a+1)了。供参考。
追问
谢谢,第二行是4f拍的不清楚
展开全部
第一行打印:数组a的地址。
第二行打印:数组a的地址+1。
第三行打印:&a[1]相当于&(a[1]),a[1]即'i',前面加&即取'i'的地址。
所以会有图中结果。
第二行打印:数组a的地址+1。
第三行打印:&a[1]相当于&(a[1]),a[1]即'i',前面加&即取'i'的地址。
所以会有图中结果。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你本该cout<<a<<endl,但是你却输出&a
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询