C語言總結,c語言
十一天課的總結(只為總結,詳細請看前面的)
一、順序結構
從上往下依次執行的代碼結構
電腦執行程式時,都是編譯成二進位檔案,電腦中又分為
二進位:例如 101001001就是一個位元字
八進位:例如 023767是一個八位元字,前面的0代表這是一個八位元字
十進位:10,33,22是十進位數字
十六進位:0x28AD代表一個十六進位的數字,0x代表這是個十六進位的數字
運算子:
int a = 10,b = 20;
算術運算子
+ :加法運算樣本:a + b = 20
- :減法運算 a - b = -10
* :乘法運算 a * b = 200
/ : 除法運算 a / b = 0(整數除法結果取整數部分,小數點後面的都不要)任何數除10相當於去掉個位
% : 取餘運算 a % b = 10
比較子(為布爾類型)
> :比較是否大於 a > b false
< :比較是否小於 a < b true
== :比較是否等於 a == b false
>= :大於等於 a >= b false
<= :小於等於 a <= b false
%= :取餘等於
!= :不等於
邏輯運算子(布爾類型)
&&:並且條件1 && 條件2 同時滿足條件1和2時,結果才為真(一架既假,兩真才真)
| | :或者條件1 | | 條件2滿足一個條件結果就為真(一真既真,兩假才假)
! :非條件 !將條件的布爾值取反
常量、變數、運算式
常量:在程式中不能改變
變數:在程式中可以改變
運算式:由常量、變數、運算子結合而成的式子
二、選擇結構
有選擇的執行代碼
if (條件運算式){
語句
}
if (條件運算式1){
語句1
}else if(條件運算式2){
語句2
}. . .
switch(){
case1:{
語句1;
break;
}
case2:{
語句2;
break;
}
. . .
default:{
語句;
break;
}
}
三、迴圈結構
當滿足迴圈條件時,反覆執行某一段代碼(迴圈體)的結構
for 迴圈
for(條件變數初始化;條件運算式;條件變數增量){
語句(迴圈體)
}
while 迴圈
條件變數初始值;
while(條件運算式){
語句(迴圈體);
條件變數增量;
}
do . . .while 迴圈(基本不使用)
do(語句(迴圈體)){
條件變數增量
}while (條件運算式)
四、數組、結構體
一位元組、二維數組、多維陣列、字元數組、字串數組
必須是相同資料類型元素組成
二維數組排序(冒泡排序)
int arr[ 5 ] = {2, 6, 3, 7, 5};/ / count 是數組的大小
for (int i = 0; i < count - 1; i++){
for(int j = 0; j < count - 1 - i; j++){
if (arr[ j ] > arr[ j + 1 ]){
int temp = arr[ j ];
arr[ j ] = arr[ j + 1 ];
arr[ j + 1 ] = temp;
}
}
}
結構體:可以存放多個類型元素
struct student {
結構體變數1;
結構體變數2;
. . .
};
一般我們定義結構體時,直接用typedef給結構體重新定義一個新名字
typedef struct {
結構體變數1;
結構體變數2;
. . .
} Student; / / 給結構體起一個新名字Student
另外define(宏定義)、enum(枚舉)也是結構體
結構體數組:存放結構體變數的
樣本:
typedef struct {
char name[20];
int age;
float score;
} Student;
Student stu1 = {" xiaoming ", 20, 80};
Student stu2 = {" xiaohong ", 19, 90};
Student stu[ ] = {stu1, stuff};
printf("%s %d %.2f",stu[1].name, stu[1].age, stu[1].score) / /列印數組元素時,需要在後面加上( . 變數名)
五、函數(詳細請看函數那一篇)
實現某一功能的代碼塊的封裝
例如:格式化的輸入、輸出函數
printf(" ")輸出函數
scanf(" ", &變數名)輸入函數
像這類由系統提供的函數稱為系統函數,由編譯者本身自己編寫的函數稱為自訂函數
例如:
int sum (int a,int b){
return a + b;
}
這是一個自訂的求和的函數
函數分為:
無參數無返回值: void a(){
printf(" hello ");
}
無參數有返回值:int b(){
return 3;
}
有參數無返回值:void c(int x){
printf(" hui zi ");
}
有參數有返回值:int d (int y){
return y;
}
函數的編寫步驟:
1:函數的聲明
2:函數的編寫
3:函數的調用
六、指標(詳細內容請看前兩篇)
指標就是地址,指向某個變數地址
函數指標、指標函數
函數指標是一個指標,指向一個函數
指標函數是一個函數,返回值是一個指標
結構體指標
指向結構體的指標
七、動態記憶體的劃分(詳細內容請看前兩篇)
棧區:記憶體位址最高,聲明的變數之類的都在這,先進後出,不能自動釋放
堆區:記憶體空間最大的,需要手動申請、手動釋放
全域區(靜態區):存放全域變數,在任何變數前面加static,該變數就會放入全域區
常量區:存放常量
代碼區:代碼編譯產生的CPU指令存放的地區