C++怪异函数

C++怪异函数,c++,C++,我不知道为什么它会把第三个符号改成w,这是非常奇怪的符号。我知道为什么它是第三个符号,但我不知道它是如何工作的 using namespace std; char napis[] = "ALICE"; char& which(int n){ return napis[n]; } int main(){ which(2) = 'w'; cout << napis << endl; return 0; } 买本书,说真的 返回对数组第三个元素的引用;wh

我不知道为什么它会把第三个符号改成w,这是非常奇怪的符号。我知道为什么它是第三个符号,但我不知道它是如何工作的

using namespace std;
char napis[] = "ALICE";

char& which(int n){
    return napis[n];
}

int main(){
which(2) = 'w';
cout << napis << endl;
return 0;
}
买本书,说真的

返回对数组第三个元素的引用;which2=。。。您可以为该引用引用的变量赋值


但是要理解它是如何工作的,你必须理解什么是引用,这在那本书中已经解释过了。

因为字符串ALICE是一个字符数组,数组从索引0开始,第二个索引是字符串中的第三个字符

你也返回了一个引用而不是一个字符副本,这就是为什么字符串如果改变它的值就会改变的。

你需要在C++引用上。