本篇內(nèi)容介紹了“C語(yǔ)言中字符串的定義方法”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
創(chuàng)新互聯(lián)建站是一家網(wǎng)站設(shè)計(jì)公司,集創(chuàng)意、互聯(lián)網(wǎng)應(yīng)用、軟件技術(shù)為一體的創(chuàng)意網(wǎng)站建設(shè)服務(wù)商,主營(yíng)產(chǎn)品:響應(yīng)式網(wǎng)站建設(shè)、高端網(wǎng)站設(shè)計(jì)、成都營(yíng)銷網(wǎng)站建設(shè)。我們專注企業(yè)品牌在網(wǎng)站中的整體樹(shù)立,網(wǎng)絡(luò)互動(dòng)的體驗(yàn),以及在手機(jī)等移動(dòng)端的優(yōu)質(zhì)呈現(xiàn)。網(wǎng)站建設(shè)、成都做網(wǎng)站、移動(dòng)互聯(lián)產(chǎn)品、網(wǎng)絡(luò)運(yùn)營(yíng)、VI設(shè)計(jì)、云產(chǎn)品.運(yùn)維為核心業(yè)務(wù)。為用戶提供一站式解決方案,我們深知市場(chǎng)的競(jìng)爭(zhēng)激烈,認(rèn)真對(duì)待每位客戶,為客戶提供賞析悅目的作品,網(wǎng)站的價(jià)值服務(wù)。在C中定義字符串有下列幾種形式:字符串常量,char數(shù)組,char指針
1.字符串常量
即:位于一對(duì)雙括號(hào)中的任何字符。雙引號(hào)里的字符加上編譯器自動(dòng)提供的結(jié)束標(biāo)志\0字符,作為
一個(gè)字符串存儲(chǔ)在內(nèi)存中。如:printf("%s","hello"); //"hello"
如果字符串文字中間沒(méi)有間隔或間隔的是空格符,ANSI C 會(huì)將其串聯(lián)起來(lái)。例:
char greeting[50] = "hello,and" "how are" "you";
等價(jià)于:
char greeting[50] = "hello,and how are you";
字符串常量屬于靜態(tài)存儲(chǔ)類。靜態(tài)存儲(chǔ)是指如果在一個(gè)函數(shù)中使用字符串常量,即使是多次調(diào)用了這個(gè)函數(shù),
該字符串在程序的整個(gè)運(yùn)行過(guò)程中只存儲(chǔ)一份。整個(gè)引號(hào)的內(nèi)容作為指向該字符串存儲(chǔ)位置的指針。這一點(diǎn)與
把數(shù)組名作為指向數(shù)組存儲(chǔ)位置的指針類似。
2.字符串?dāng)?shù)組及其初始化
初始化例子:
char m[40] = "hello,world"; //定義字符串?dāng)?shù)組時(shí)必須指定數(shù)組大小(整型常量),在指定大小時(shí),要確保數(shù)組的大小比預(yù)定的大一個(gè),因?yàn)榫幾g器會(huì)自動(dòng)添加'\0'。
//多余的元素會(huì)初始化為'\0'
char m={'h','e','l','\0'}; //注意標(biāo)志結(jié)束的空字符,若沒(méi)有它,得到的只是一個(gè)字符數(shù)組而不是字符串
3.利用char指針定義字符串
char *m = "hello,world"; //自動(dòng)添加'\0'
注意:此時(shí)字符串指針m指向字符串常量,不成用*(m+1)='o'修改此常量,因?yàn)檫@個(gè)字符串常量放在常量區(qū)不能被修改
4.數(shù)組和指針
數(shù)組形式和指針形式有什么不同呢?
數(shù)組形式: char m[40] = "hello,world";
指針形式: char *m = "hello,world";
數(shù)組形式:
編譯器會(huì)把數(shù)組名m看作是數(shù)組首元素的地址&m[0]的同義詞,m是個(gè)地址常量。可以用m+1來(lái)標(biāo)識(shí)數(shù)組里的下一個(gè)元素,但不能使用++m,增量運(yùn)算符只能在變量前使用, 而不能在常量前使用。
m[40]在計(jì)算機(jī)內(nèi)存中被分配一個(gè)有40個(gè)元素的數(shù)組(其中每個(gè)元素對(duì)應(yīng)一個(gè)字符,還有一個(gè)附加的元素對(duì)應(yīng)結(jié)束的空字符'\0')。每個(gè)元素都被初始化為相應(yīng)的字符。
通常,被引用的字符串存儲(chǔ)在可執(zhí)行文件的數(shù)據(jù)段部分;當(dāng)程序被加載到內(nèi)存中時(shí),字符串也被加載到內(nèi)存中,把被引用的字符串復(fù)制到數(shù)組中
指針形式:
指針形式(*m)也會(huì)在靜態(tài)存儲(chǔ)區(qū)為字符串預(yù)留空間。此外,一旦程序開(kāi)始執(zhí)行,還要為指針變量m另外預(yù)留一個(gè)存儲(chǔ)位置,以在該指針變量中能夠存儲(chǔ)字符串的地址。
m指向字符串的第一個(gè)字符,可用++m指向第二個(gè)字符。 指針m是個(gè)變量。
“C語(yǔ)言中字符串的定義方法”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。