先來看一段**
#include
intmain
(void
)
printf()中的%s列印字串,而%p列印指標的值,輸出位址符,%c列印字元
用雙引號括起來的內容被視為指向該字串儲存位置的指標
"we"為字串所以%s將其整個列印為we
%p列印的是指標,而"are"為指向該字串儲存位置的指標,故列印結果為位址
%c列印單個字元,而*"space farers"相當於指標的值,那麼列印的結果為s
所有未被使用的元素都被自動初始化為0(空字元\0)
字串字面量被視為const資料
#define msg "i'm special"
#include
intmain
(void
)
執行結果如下
該程式說明了幾個問題:
第一,pt和msg的位址相同,而ar的位址不同
第二,雖然字串字面量"i』m special"在程式**現了兩次,但是位址是相同的,而且與msg的位址也相同
陣列的元素是變數,但是陣列名不是變數
指標指向的字串字面量不能更改,而陣列中的字串可以更改,這是因為指標指向的字串字面量是直接指向該字串字面量的位址,修改的話會影響整個函式中使用該字串字面量;而陣列中賦給陣列的字串拷貝到了新的位址裡,所以可以修改。
C語言字串學習總結
字串 實質就是多個字串行,有多個字元組成 c語言中是沒有string這種型別的,通常在c中是用字元陣列來儲存字串的。字串可以看做乙個特殊的字元陣列,為了和普通的陣列分開,故在字串的尾部加上乙個結束標誌 0 0 是乙個ascii碼值為0的字元,是乙個空的操作符,表示什麼也沒有,所以採用字元陣列存放字串...
C語言字串 字串排序
本題要求編寫程式,讀入5個字串,按由小到大的順序輸出。輸入為由空格分隔的5個非空字串,每個字串不包括空格 製表符 換行符等空白字元,長度小於80。按照以下格式輸出排序後的結果 after sorted 每行乙個字串 red yellow blue green white after sorted b...
c語言字元轉字串 C語言字串的另類用法
講這個例子前,咱們先來看乙個簡單的程式 字串陣列實現數字轉字母 include include int main void 當然我們也可以這麼寫,用指標的形式來表示 include include int main void 同樣的,結果也是和上面是一樣的,我們再對這種寫法進行簡化,如果初學者的基礎...