c語言字串的學習

2021-10-04 06:46:02 字數 878 閱讀 9695

先來看一段**

#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 同樣的,結果也是和上面是一樣的,我們再對這種寫法進行簡化,如果初學者的基礎...