-1

我不知道为什么它将第三个符号更改为 w,这是一个非常奇怪的符号(我知道它为什么是第三个,但我不知道它是如何工作的)。

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

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

int main(){
which(2) = 'w';
cout << napis << endl;
return 0;
}
4

2 回答 2

3

买本书,认真的。

which()返回对数组第三个元素的引用;通过which(2) = ...您将值分配给该引用所引用的变量。

但是要了解它的真正工作原理,您必须了解参考是什么——您应该得到的那本书中对此进行了解释。

于 2012-06-23T12:20:32.193 回答
1

由于字符串“ALICE”是一个字符数组,并且数组从索引 0 开始,因此第二个索引是字符串中的第三个字符。

您还将返回一个引用而不是 char 的副本,这就是为什么如果您更改它的值,字符串会发生变化。

于 2012-06-23T12:21:23.107 回答