在C語言中,字符串的賦值主要有兩種方法,第一種是通過指針的方式直接賦值,第二種是通過數組直接賦值。
一、首先,我們來看第一種賦值方法:指針式賦值
我們知道,上面的示例是顯然可以正常執行的,也是很容易理解的。但是下面這種方式就令人有點難以理解和頭大了。
通過程序的運行情況,我們可以知道:char *p = "hello";這種字符串的賦值方式是完全沒有問題的。要理解這種賦值方式,我們首先得理解雙引號(特別注意:這個是雙引號,不要賦值的時候給弄了個單引號)在這個語句中做了什么工作。雙引號主要做了3個工作,分別是:
(1)申請了空間(在常量區),存放了字符串。
(2)在字符串尾加上了“\0”。
(3)返回地址。
這里所返回的地址就賦值給了char *類型的指針變量p。
二、通過字符數組直接把字符串賦值。程序如下:
三、需要注意的一些問題
(1)直接把字符串賦值給數組名(也就是數組首元素的首地址)是不行的