C char str[] , char *str 區別

顯示輸出:

6       5         // 字符數組,"Hello" 存於堆棧上
4       5         // “Hello” 存於字符串常量區
5       19       // 沒有'/0' 所以長度不定

 

 

char str1[]的彙編代碼:

可以看到"Hello" ,在常量區也存在,但仍被複制到堆棧上,str1指向的位置也在堆棧上

 

 

char *str2的彙編代碼:

可以看到str2的指針直接指向的是常量區的"Hello"

所以以下代碼在運行時出錯:

Hello在常量區不能更改

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章