C++怎么输出数组中各个元素的地址

图片说明
运行结果如图
图片说明
问题如图,请大神们帮我解下惑,谢谢

2个回答

1.因为s是数组,数组名代码数组的首地址。&s是存放s首地址的地址。
2.&s[0]是首元素的地址,也就是数组的首地址,跟s一样;跟s[0]不一样,s[0]是首元素,是个字符。
3.(s+5)是偏移5个单位,输出还是字符串,不是字符,因为你的字符串刚好是6个c,只是输出最后一个c,你可以添加几个字符测试看。
4.&s[5]跟第二条一样,也很第五类似,输出字符串。

qtchen_1988
qtchen_1988 回复qq_43551304: cout << &s << endl; cout << static_cast<void *>(s) << endl;
3 个月之前 回复
qq_43551304
qq_43551304 我要么输出的是整个字符串,要么输出存放s首地址的地址
3 个月之前 回复
qq_43551304
qq_43551304 那请问大佬,我该怎么输出s的首地址呢而不是输出s这个字符串呢。
3 个月之前 回复

"*":这是一个取内容操作符,在定义一个变量使用 * 号时,表明这是个指针型变量。
"&":表示取地址,每个变量都有一个对应的地址。
int *p=&i定义指针p指向变量i的地址,也就是p的值是变量i的地址
char s[]="cccccc"定义的是一个字符串数组,虽然在定义时没有写数组的长度,但系统会根据它的值来确定数组的长度

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问