陣列
一、陣列的定義和賦值
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...