C語言之陣列 字串

2021-06-27 14:31:51 字數 2961 閱讀 1994

陣列

一、陣列的定義和賦值

int ages[5] = ;  //每個元素佔4個位元組,整個陣列的大小為4*元素個數5

int ages = ; //定義陣列可以不宣告長度,後邊大括號裡的元素個數決定陣列的長度

int ages[『a』] = //』a』 == 65,所以這個陣列的長度為65

ages[0] = 29; //為某乙個元素賦值或替換

二、陣列的遍歷

printf(「%d\n」, ages[0]);  //取出某乙個元素

for(int i=0; i<5; i++)

三、計算陣列的長度

int count = sizeof(ages)/sizeof(int);

eg:for(int i=0; i四、陣列的記憶體細節

char cs[5] = ;

char陣列記憶體如下:

1、陣列的位址就是首個元素的位址

for(int =0; i<5; i++)

2、陣列的名就是陣列的位址

printf(「%p\n」, cs);

int ages[3] = ;

printf(「%p\n」, ages);

for(int i=0; i<3; i++)

int陣列記憶體如下:

五、陣列作為形參

void method(int array)  //陣列作為形參無需宣告陣列長度

int main()

; method(arr); //陣列名字作為實參傳進函式時,相當於把陣列的指標傳入函式中,所以形參的位址和實參的位址是乙個位址,所以改變同一塊記憶體

}

六、二維陣列

int ages2[3][5] = ,

,};int ages2[2][1]; //訪問第三個陣列中第二個元素,即20

字串一、c語言是使用字元型別陣列來實現字串的

char name[10] = 「jack」;  

//等同char name = 「jack」;

//等同char name[10] = ;

//或char name[10] = ;

//name陣列長度為10,實際佔了5個位元組,分別為j、a、c、k、\0,\0的ascii //碼為0,可以使用ascii碼值代替字元

printf(name);

//printf預設只接收常量字串,放變數編譯會警告,但可以通過

char name2 = ; //不能當作字串來用,因為沒有結束符號\0,所以這只是乙個字元型別陣列

二、輸出字串

int main()

三、修改字串中的某一位字元

char name = 「itcast」;  //等同char name = ;

name[3] = 『h』;

四、\0的作用

\0是字串結尾的標示符

int main()

; //這僅僅是乙個字元陣列,因為沒有結束符號」\0」或0

printf(「%s\n」, name); //輸出的是it (name作為字串傳給函式printf)

printf(「%s\n」, name2); //輸出的是okit (name2作為陣列指標傳給printf函式,printf函式中規定輸出字串,遇到」\0」結束輸出)原因見下圖,記憶體示意

如上圖記憶體示意圖可知,從位址ffc4

開始輸出,一直到

ffc8結束

如果name

字串中含有字元」\0」,比如

name

為」itc\0ast」,那麼printf(「%s\n」, name2);會輸出

okitc

,遇到第乙個」\0」結束輸出。

五、strlen函式

包含於標頭檔案#include 中

strlen 區別於 

sizeof

,因為strlen

不計算\0

,而sizeof

計算\0

strlen計算的是不帶

\0的字元數,

sizeof

計算的是帶

\0的位元組數

#include #include int main()

int main()

上面的**輸出的是4,所以可以看出strlen()函式的原理是從陣列name的位址開始計算到\0結束的長度

六、輸出字串中某乙個字元

int main()

七、字串陣列

#include #include /*

字串陣列即字元型二維陣列

*/int main()

; //等同於下邊的寫法

/*char names[2][10] = ,}

*/printf("%s\n", names[1]); //輸出第二個字串

return 0;

}

C語言之字串,陣列

注意char a abcdef 與char a abcdef 的區別 1 字串存放的記憶體區域不同 前者存放在常量區,不可修改,後則存放在棧中,可以修改 2 變數a存放的內容不同 前者存放的是乙個位址,而後者存放的是字串 abcdef 因此使用sizeof它們的結果是不同的,分別是4和7 c 是靜態...

C語言之陣列和字串

陣列的使用 對一維陣列的輸入 int a 5 i 陣列必須先定義後使用,且在定義時,必須指定陣列的長度。比如這裡不能這樣 int a.for i 0 i 5 i scanf d a i 這裡i 5是給他限定輸入資料個數的範圍,也就是當輸入這麼多資料後,系統不再接收資料 由於陣列元素儲存型別為int,...

C語言之字串

字元就是符號 圖案,在計算機中以整數形式儲存,當需要顯示時會根據ascii表中的對應關係,顯示相應的符號或圖案。字元型別 char 的資料 如字元a,a,0,等 在記憶體中以對應的ascii碼存放,不同字元所對應的ascii碼見下表。計算機用乙個位元組 8個二進位制位 儲存乙個字元,例如,字元a的a...