C++——字符串和指針


先看一段代碼

char str[12] = ""Hello;
char *P = str;
*p = 'h';//改變第一個字母

char *ptr = "Hello";
*ptr = 'h'; //錯誤

字符串可以用字符指針char*、字符數組等來表示。

第一個字符串使用數組開辟的,他是可以改變的量。

字符串指針變量ptr本身是一個變量,用於存放字符串的首地址。可以改變ptr使他指向不同的字符串,但不能改變ptr所指的字符串常量。因為定義指針時,編譯器並不為指針所指向的對象分配空間,他只是分配指針本身的空間,所以“Hello”會被當成常量。放到.rodata區域。參考:剖析.o文件ELF組成

為了提醒自己別犯錯誤,也是提倡的寫法

const char* ptr = "Hello";

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM