C語言中字符串賦值的幾個理解


在C語言中,字符串的賦值主要有兩種方法,第一種是通過指針的方式直接賦值,第二種是通過數組直接賦值。

  一、首先,我們來看第一種賦值方法:指針式賦值

我們知道,上面的示例是顯然可以正常執行的,也是很容易理解的。但是下面這種方式就令人有點難以理解和頭大了。

通過程序的運行情況,我們可以知道:char *p = "hello";這種字符串的賦值方式是完全沒有問題的。要理解這種賦值方式,我們首先得理解雙引號(特別注意:這個是雙引號,不要賦值的時候給弄了個單引號)在這個語句中做了什么工作。雙引號主要做了3個工作,分別是:

(1)申請了空間(在常量區),存放了字符串。

(2)在字符串尾加上了“\0”。

(3)返回地址。

這里所返回的地址就賦值給了char *類型的指針變量p。

二、通過字符數組直接把字符串賦值。程序如下:

三、需要注意的一些問題

(1)直接把字符串賦值給數組名(也就是數組首元素的首地址)是不行的

 

 


免責聲明!

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



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