2012-06-23 36 views
-1

我不知道爲什麼它是不斷變化的第三個星座爲w,這是非常奇怪的符號(我知道爲什麼它是第三個,但我不知道它是如何工作)。C++怪異功能

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

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

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

您需要在C++參考文獻[讀了(http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list)。 –

回答

3

認真看書。

which()返回對數組的第三個元素的引用;通過which(2) = ...您將值分配給該引用引用的變量。

但是,要了解它如何工作,你必須明白什麼是參考是 - 這就是這本書,你應該得到解釋。

1

由於字符串「愛麗絲」是字符數組,和陣列開始於索引0,第二索引是字符串中的第三字符。

您還返回一個參考,而不是字符的副本,這就是爲什麼字符串的變化,如果你改變它的價值。

+1

「我知道爲什麼它是第三個,但我不知道它是如何工作」 ...... – Griwes