2016-11-11 87 views
3

我正在學習const和玩例子的指針。從this thread我讀到: const char * the_string:我可以更改該字符串指向的字符,但我無法修改它指向的字符。爲什麼我可以修改char const char *點?

int main() 
{ 
    const char* a = "test"; 
    char* b = "other"; 
    a = b; 
    cout << a << endl; //prints "other" 
} 

我爲什麼可以修改處燒焦一個點?

+0

'了'是一個指針。它用於引用一些數據(在這種情況下,是一個'char'數組)。指針是指向它們指向的數據的獨立實體,因此它們常常成爲我們是在討論指針還是數據的混淆之源。在這種情況下,'const'指向* data *。它不一定要引用指針。 –

+0

爲什麼重新打開這個問題?這與鏈接問題完全相同,並且鏈接的問題有很好的答案。 – Barry

+0

我做到了。 @巴里你可能是這個網站上最聰明的人之一,如果不是*最聰明的,那麼對你來說很明顯的事情可能不是其他人。我不認爲重複對金錘來說「足夠明顯」。 – Bathsheba

回答

3

您可以設置a以來a別的東西來點本身const:只有它所指向是const數據。

設置已b = a是允許的,因爲你會虛擲const

如果你想防止a = b然後寫

​​

相關問題