C語(yǔ)言中定義字符串有哪些方法?
首先是數(shù)組,存放在棧區(qū),可讀可寫(xiě),操作起來(lái)很方便。
char s1[] = "helloworld";初學(xué)者容易寫(xiě)成這樣:
chars1[32]; s1="helloworld";不過(guò)編譯的時(shí)候就會(huì)提示錯(cuò)誤,因?yàn)閿?shù)組名是指針常量,地址不能修改。
第二種是字符串常量,存放在只讀數(shù)據(jù)區(qū)。
char*s2 = "helloworld";既然是只讀,就是不能修改的意思,非要修改,就是段錯(cuò)誤。
s2[0] = 'x';
編譯運(yùn)行結(jié)果:
root@Turbo:test# ./test Segmentation fault (core dumped) root@Turbo:test#第三種先在堆上申請(qǐng)空間,然后用字符串拷貝函數(shù)把字符串拷貝進(jìn)去,用完記得釋放空間。
char*s3=(char*)malloc(128); strcpy(s3,"helloworld"); free(s3);初學(xué)者容易寫(xiě)成這樣:
char *s3 = (char *)malloc(128); s3= "helloworld"; free(s3);編譯沒(méi)問(wèn)題,但是運(yùn)行的時(shí)候,直接異常退出。
原因就是,本來(lái)指針s3指向一塊堆空間:
?執(zhí)行:
s3="helloworld"語(yǔ)句后,你以為是把字符串賦值給這塊堆空間:
?其實(shí)是重新給指針s3賦值:
?s3原來(lái)指向堆內(nèi)存,現(xiàn)在指向只讀數(shù)據(jù)區(qū),去釋放這塊空間,當(dāng)然是不允許的。
最后,給大家留一個(gè)關(guān)于字符串的筆試題,如果你知道答案,歡迎在文章下方留言。
?
審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
-
C語(yǔ)言
+關(guān)注
關(guān)注
183文章
7644瀏覽量
145642 -
字符串
+關(guān)注
關(guān)注
1文章
596瀏覽量
23171 -
指針
+關(guān)注
關(guān)注
1文章
484瀏覽量
71858 -
編譯
+關(guān)注
關(guān)注
0文章
694瀏覽量
35177 -
數(shù)組
+關(guān)注
關(guān)注
1文章
420瀏覽量
27372
原文標(biāo)題:C語(yǔ)言定義字符串的幾種方法
文章出處:【微信號(hào):學(xué)益得智能硬件,微信公眾號(hào):學(xué)益得智能硬件】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
熱點(diǎn)推薦
C語(yǔ)言字符串轉(zhuǎn)數(shù)字實(shí)現(xiàn)方法
在C/C++語(yǔ)言中沒(méi)有專門(mén)的字符串變量,通常用字符數(shù)組來(lái)存放字符串。
發(fā)表于 11-14 17:50
?1.4w次閱讀
C語(yǔ)言中字符串拷貝函數(shù)有幾種方法?
strcpy,即string copy(字符串復(fù)制)的縮寫(xiě)。 是C語(yǔ)言標(biāo)準(zhǔn)庫(kù)中實(shí)現(xiàn)字符串拷貝的一個(gè)函數(shù)。 各大公司筆試題最喜歡考的一道題,快來(lái)看看,你會(huì)
C語(yǔ)言總結(jié)_字符串全方位練習(xí)
C語(yǔ)言字符串全方位練習(xí),涉及知識(shí)點(diǎn):字符串解析、大小寫(xiě)判斷、字符串插入、字符串刪除、
C語(yǔ)言-字符串處理
字符串在C語(yǔ)言里使用非常多,因?yàn)楹芏鄶?shù)據(jù)處理都是文本,也就是字符串,特別是設(shè)備交互、web網(wǎng)頁(yè)交互返回的幾乎都是文本數(shù)據(jù)。 這篇文章就介紹字符串
C語(yǔ)言字符串的引用方式
在C語(yǔ)言程序中,字符串是存放在字符數(shù)組中的。
2. 用字符數(shù)組存放一個(gè)字符串,可以通過(guò)數(shù)組名和
C語(yǔ)言定義字符串的幾種方法
評(píng)論