1. 程式人生 > >C++中字串常量與字串變數

C++中字串常量與字串變數

今天在敲遍歷內容為字串的棧的時候,發現在儲存出棧的字串時不需要另外開闢空間來儲存其中的內容,可以直接使用指標指向字串的儲存地址。

剛開始我認為字串常量在使用指標來給其他的字串變數賦值時,原來的字串在改變時,會導致指向該地址的字串變數也改變。

但是一個很重要的概念就是 字串常量儲存空間裡的內容不能被改變,並且只有在程式結束時才會釋放。(參考LInux中的靜態變數的生存週期就是整個函式)

如果你想修改a所指向的內容,其實只是開闢了一個新的空間來存放新的內容,並返回新空間的地址,原來的內容依舊在存在。(想起來Java中也是這樣呢)


例如圖中 b指向的是舊的內容“abc”的儲存地址,a指向了新的“bcd”的儲存地址,並不會對b指向的內容產生影響。

如果是使用字串變數,那麼就得宣告為字串陣列。

如  char a[8]="abc";