陣列
一、陣列定義
一維陣列:型別說明符 陣列名[常量表示式];例如: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 ...