c語言學習筆記2

2021-06-18 23:40:59 字數 1742 閱讀 8785

陣列

一、陣列定義

一維陣列:型別說明符 陣列名[常量表示式];例如:int a[10]

二維陣列:型別說明符 陣列名[常量表示式][常量表示式];例如:float[3][4]

多維陣列:例如:float a[2][3][4]

字元陣列:與一維陣列類似

說明1.不允許對陣列的大小做動態定義,即陣列的大小不依賴於程式執行過程中變數的值;

2.二維陣列中元素排列的順序是按行存放的,即在記憶體中先順序存放第一行的元素,再存放第二行的元素;

3.多維陣列元素在記憶體中的排列順序:第一維的下標變化最慢,最右邊的下標變化最快;

4.字串作為字元陣列來處理,以『\0』作為字串結束標誌;系統依靠檢測『\0』的位置來判斷字串是否結束;

5.陣列名代表該陣列的起始位址

二、陣列引用

一維陣列:陣列名[下標]。例如:a[0] = a[5]+a[7]-a[2*3];

二維陣列:陣列名[下標][下標]。例如:b[1][2] = a[2][3]/2;

字元陣列:利用迴圈來獲取。

三、陣列的初始化

一維陣列

在定義陣列時對陣列元素賦予初值或部分賦初值

int a[10] =

經典例子:fibonacci數列問題(**分割數列或斐波那契數列)

斐波那契數列:從第三項開始,每一項等於前兩項的和

二維陣列

分行給二維陣列賦初值

int a[3][4] = ,.}

字元陣列初始化

逐個字元賦給陣列中各元素

四、字元陣列的輸入輸出

4.1 逐個字元輸入輸出。(%c)

4.2 將整個字串一次輸入或輸出。(%s)

說明1.輸出字元不包括結束字元'\0';

2.用」%s「輸出時,printf函式中輸出項時字元陣列名。例如:char c = ; printf("%s",c);

3.如果乙個字元陣列中包含多個'\0',則遇第乙個'\0'時輸出就結束;

4.用scanf函式輸入乙個字串。例如:scanf("%s",c);輸入多個字串(char str1[5],str2[2],str3[5];scanf("%s,%s,%s",str1,str2,str3);)

5.如果scanf輸入項時字串陣列名,則不用再加位址符&

五、字串處理函式

5.1 puts函式(可以用printf函式替代,實際使用不多)

puts(字元陣列):將乙個字串(以『\0』結束的字串行)輸出到終端。

5.2 gets函式

5.3 strcat函式*

5.4 strcpy和strncpy函式

strcpy(字元陣列1,字元陣列2):字串複製函式,將字元陣列2 複製到字元陣列1中。

strncpy(字元陣列1,字元陣列2,2):將字串2中前面n個字元複製到字元陣列1中(n=2,但n不能多於字元陣列1中的字元個數);

5.5 strcmp函式

strcmp(字串1,字串2):比較字串1和字串2。對兩個字串自左至右逐個字元相比(按ascii碼值大小比較,直到遇到不同的字元或遇到'\0'為止)。結果如相等,則為0;如大於則為正整數;如小於則為負整數;

5.6 strlen函式

strlen(字元陣列):測試字串長度的函式。函式的值為字串中的實際長度。

5.7 strlwr和strupr函式:

strlwr(字串):將字串中大寫字母換成小寫字母;

strupr(字串):將字串中小寫字母換成大寫字母;

C語言學習筆記(2)

sizeof a sizeof int int a int a 以下四種函式原型是等價的 陣列的單元表達的是變數,需要用 取位址。運算子可對陣列做,也可對指標做 p 0 a 0 運算子可以對指標使用,也可對陣列做 陣列變數是型別const指標,因此不能變賦值 int a int const b 1 ...

《C 程式語言》學習筆記2

程式語言 c 學習的指導思想 focus on programming techniques,not on language features.2.1 c 設計思想 1 能提供使用者介面 成員函式 2 只有通過使用者介面才能訪問資料 privite 3 初始化 掃尾 重構,虛構函式 4 使用者 與實...

C 語言學習 2

程式2 題目 企題目 企業發放的獎金根據利潤提成。利潤 i 低於或等於10萬元時,獎金可提10 利潤高於10萬元,低於20萬元時,低於10萬元的部分按10 提成,高於10萬元的部分,可可提成7.5 20萬到40萬之間時,高於20萬元的部分,可提成5 40萬到60萬之間時高於40萬元的部分,可提成3 ...