C++ 如何获得指向字符数组中第一个字符的常量指针?

C++ 如何获得指向字符数组中第一个字符的常量指针?,c++,string,pointers,c++14,C++,String,Pointers,C++14,在以下程序中,使用cin更改存储的字符串,从而更改地址。 字符串的第一个元素的地址由s表示。第一个元素的地址是字符串本身。因此,当输入新字符串时,它被更改。当我尝试将&s[0]输出到cout时,它给出了整个字符串 #include<iostream> using namespace std; int main() { char s[6]; cin >> s; // say abcde cout << s ; cout &l

在以下程序中,使用
cin
更改存储的字符串,从而更改地址。 字符串的第一个元素的地址由
s
表示。第一个元素的地址是字符串本身。因此,当输入新字符串时,它被更改。当我尝试将
&s[0]
输出到
cout
时,它给出了整个字符串

#include<iostream>
using namespace std;
int main() {
    char s[6];
    cin >> s;   // say abcde
    cout << s ; 
    cout << &s[0] ; // gives abcde

    cin >> s;   // say stack 
    cout << s;  
    cout << &s[0] ; gives stack
}
#包括
使用名称空间std;
int main(){
chars[6];
cin>>s;//说abcde
cout s;//说堆栈

cout地址没有改变,存储在地址中的数据正在改变。打印整个字符串的原因是您正在将指针传递到
cout
,并且可以将数组传递给函数(或流)通过给出指向第一项的指针。将指针传递给第一个字符就像传递一个C样式的字符串。如果要打印第一个字符的地址,则需要将指针强制转换为
void*
countand确切的地址在更改吗?非sequeuitur。数组中存储的字符串正在更改。这与它的地址。你真该看看。@Quentin我修好了,现在好点了吗?@Quentin我也会修好的,谢谢!(严肃地)编辑:好点了吗?