char* a = "abc" 和 char a[] = "abc" 之間的區別


char* a = "abc";

聲明了一個字符類型的指針a,並為它賦值初始值為"abc",a的值是字符串"abc"的首地址【第一個字符的地址】

  其中字符串"abc"應屬於全局靜態存儲區,這里對a[1] = 'a',在編程中會出錯

 

 

char a[] = "abc";

聲明了一個字符型數組,並賦初值。這里的字符串"abc"應該是屬於堆存儲區,是在局部開辟的空間。

所以,這里對a[1] = 'b';是正確的。由於數組類型a相當於一個const型的指針,所以a = null;會出錯。

 

 

 

 


免責聲明!

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



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