字符型指針變量的賦值問題
char str[]="hello" 很好理解,就是給字符數(shù)組 str[] 賦值"hello";
但是 char *str2="world" 該怎么理解?這是給指針變量 str2 賦值"world"?可是指針變量里面存的不應(yīng)該是內(nèi)存地址嗎?怎么可以賦值一個字符串?
char str[]="hello" 很好理解,就是給字符數(shù)組 str[] 賦值"hello";
但是 char *str2="world" 該怎么理解?這是給指針變量 str2 賦值"world"?可是指針變量里面存的不應(yīng)該是內(nèi)存地址嗎?怎么可以賦值一個字符串?
2019-10-31
舉報
2019-11-04
每個字符串在內(nèi)存中都占用一段連續(xù)的存儲空間。并有唯一確定的首地址。因此可以將字符串的首地址賦值給字符指針。則可以讓字符指針指向一個字符串。對于字符串常量而言,字符串常量本身就代表他常量存儲區(qū)的首地址。
運行的時候,就加載了。是無法更改的,在我們的內(nèi)存中代碼段中的。棧內(nèi)存和堆內(nèi)存才能更改。