在C中定義字串有下列幾種形式:字串常數,char數組,char指標
1.字串常數
即:位於一對雙括號中的任何字元。雙引號裡的字符加上編譯器自動提供的結束標誌\0字符,作為
一個字串儲存在記憶體中。如:printf("%s","hello"); //"hello"
如果字串文字中間沒有間隔或間隔的是空格符,ANSI C 會將其串聯起來。例:
char greeting[50] = "hello,and" "how are" "you";
等價於:
char greeting[50] = " hello,and how are you";
字串常數屬於靜態儲存類別。靜態儲存是指如果在函數中使用字串常數,即使是多次呼叫了這個函數,
該字串在程式的整個運行過程中只儲存一份。整個引號的內容作為指向該字串儲存位置的指標。這一點與
把數組名當作指向數組儲存位置的指標類似。
2.字串陣列及其初始化
初始化範例:
char m[40] = "hello,world"; //定義字串陣列時必須指定數組大小(整數常數),在指定大小時,要確保數組的大小比預定的大一個,因為編譯器會自動添加'\0'。
中//之後符號上的元素上初始化為「#」# . 'l',' \0'}; //注意標誌結束的空字符,若沒有它,得到的只是一個字符數組而不是字符串
3.利用char指針定義字符串
##
## 編譯器會把陣列名稱m看成是陣列首元素的位址&m[0]的同義詞,m是個位址常數。可以用m+1來識別數組裡的下一個元素,但不能使用++m,增量運算子只能在變數前使用, 而不能在常數前使用。
m[40]在電腦記憶體中被分配一個有40個元素的數組(其中每個元素對應一個字符,還有一個附加的元素對應結束的空字符'\0')。每個元素都被初始化為對應的字元。
通常,被引用的字串儲存在執行檔的資料段部分;當程式載入記憶體時,字串也被載入到記憶體中,將被引用的字串複製到陣列中
以上是C中字串的定義方法及說明實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!