回顧 C的基礎語法

2021-10-05 05:15:26 字數 4555 閱讀 6597

1.入門程式

#include

int main()

2.資料型別

資料型別:

1.基本資料型別

1.1.整型:int 2個位元組

1.2.字元型:char 1個位元組

1.3.實型(浮點型)

1.3.1.單精度型:float 4個位元組

1.3.2.雙精度型:double 8個位元組

2.構造型別

2.1.列舉型別

2.2.陣列型別

2.3.結構體型別

2.4.共用體型別

3.指標型別

4.空型別

3.格式化輸出語句

%d:十進位制整數;

%c:單個字元;

%s:字串;

%f:6位小數;

#include

int main()

4.常量

值不發生改變的量成為常量;

定義字元常量(注意後面沒有;)

#include

#define pocketmoney 10 //定義常量及常量值

int main()

5.運算子

5.1.算數運算子:+,-,,/,%,++,–;前++/–,先運算,再取值.後++/–,先取值,再運算;

5.2.賦值運算子:

5.3.關係運算子;

5.4.邏輯運算子;

5.5.三目運算子:表示式1 ? 表示式2 : 表示式3;

6.水花仙數計算

輸出所有三位數的水仙花數字

所謂「水仙花數」是指乙個三位數,其各位數字立方和等於該數,如:153就是乙個水仙花數,153=111+555+333。

#include

int main()

}return 0;

}7.列印正三角形的*

#include

int main()

/ 觀察每行號的數量,補全迴圈條件 /

for( k=0 ; k<2i-1 ; k++ )

printf("\n"); //每次迴圈換行

}return 0;

}8.臭名遠揚的goto語句

很少使用

#include

int main()

}//執行goto

loop:printf(「結束for迴圈了…」); //請選擇合適位置新增識別符號

return 0;

}9.形參與實參

形參:形參是在定義函式名和函式體的時候使用的引數,目的是用來接收呼叫該函式時傳入的引數;

實參:實參是在呼叫時傳遞該函式的引數。

函式的形參和實參具有以下特點:

1.形參只有在被呼叫時才分配記憶體單元,在呼叫結束時,即刻釋放所分配的記憶體單元。因此,形參只有在函式內部有效。函式呼叫結束返回主調函式後則不能再使用該形參變數。

2.實參可以是常量、變數、表示式、函式等,無論實參是何種型別的量,在進行函式呼叫時,它們都必須具有確定的值,以便把這些值傳送給形參。因此應預先用賦值等辦法使實參獲得確定值。

3.在引數傳遞時,實參和形參在數量上,型別上,順序上應嚴格一致,否則會發生型別不匹配」的錯誤。

10.函式返回值注意

注意:void函式中可以有執行**塊,但是不能有返回值,另void函式中如果有return語句,該語句只能起到結束函式執行的功能。其格式為:return;

11.遞迴

#include

int getpeachnumber(int n) //這裡要定義n,要不編譯器會報錯!

else

return num;

}int main()

12.變數儲存類別 !

12.1.生存週期劃分儲存方式

c語言根據變數的生存週期來劃分,可以分為靜態儲存方式和動態儲存方式。

靜態儲存方式:是指在程式執行期間分配固定的儲存空間的方式。靜態儲存區中存放了在整個程式執行過程中都存在的變數,如全域性變數。

動態儲存方式:是指在程式執行期間根據需要進行動態的分配儲存空間的方式。動態儲存區中存放的變數是根據程式執行的需要而建立和釋放的,通常包括:函式形式引數;自動變數;函式呼叫時的現場保護和返回位址等。

12.2.儲存型別劃分

c語言中儲存類別又分為四類:自動(auto)、靜態(static)、暫存器的(register)和外部的(extern) ;

1、用關鍵字auto定義的變數為自動變數,auto可以省略,auto不寫則隱含定為「自動儲存類別」,屬於動態儲存方式。

2、用static修飾的為靜態變數,如果定義在函式內部的,稱之為靜態區域性變數;如果定義在函式外部,稱之為靜態外部變數。

注意:靜態區域性變數屬於靜態儲存類別,在靜態儲存區內分配儲存單元,在程式整個執行期間都不釋放;靜態區域性變數在編譯時賦初值,即只賦初值一次;如果在定義區域性變數時不賦初值的話,則對靜態區域性變數來說,編譯時自動賦初值0(對數值型變數)或空字元(對字元變數)

3、為了提高效率,c語言允許將區域性變數的值放在cpu中的暫存器中,這種變數叫「暫存器變數」,用關鍵字register作宣告。

注意:只有區域性自動變數和形式引數可以作為暫存器變數;乙個計算機系統中的暫存器數目有限,不能定義任意多個暫存器變數;區域性靜態變數不能定義為暫存器變數。

4、用extern宣告的的變數是外部變數,外部變數的意義是某函式可以呼叫在該函式之後定義的變數。

#includ

int main()

int x=100;

13.內部函式外部函式 !

在c語言中不能被其他原始檔呼叫的函式稱為內部函式 ,內部函式由static關鍵字來定義,因此又被稱為靜態函式,形式為:

static [資料型別] 函式名([引數])

這裡的static是對函式的作用範圍的乙個限定,限定該函式只能在其所處的原始檔中使用,因此在不同檔案**現相同的函式名稱的內部函式是沒有問題的。

在c語言中能被其他原始檔呼叫的函式稱為外部函式 ,外部函式由extern關鍵字來定義,形式為:

extern [資料型別] 函式名([引數])

c語言規定,在沒有指定函式的作用範圍時,系統會預設認為是外部函式,因此當需要定義外部函式時extern也可以省略。

extern可以省略;

14.陣列

陣列:一塊連續的,大小固定並且裡面的資料型別一致的記憶體空間,

陣列的宣告:資料型別 陣列名稱[長度n]

資料型別 陣列名稱[長度n] = ;

資料型別 陣列名稱 = ;

數類型別 陣列名稱[長度n];

陣列名稱[0] = 元素1;陣列名稱[1] = 元素2;…

注意:1、陣列的下標均以0開始;

2、陣列在初始化的時候,陣列內元素的個數不能大於宣告的陣列長度;

3、如果採用第一種初始化方式,元素個數小於陣列的長度時,多餘的陣列元素初始化為0;

4、在宣告陣列後沒有進行初始化的時候,靜態(static)和外部(extern)型別的陣列元素初始化元素為0,自動(auto)型別的陣列的元素初始化值不確定。

15.陣列遍歷

#include

int main()

;int i;

for(i=0;i<10;i++)

return 0;

}15.陣列的氣泡排序

氣泡排序的思想:相鄰元素兩兩比較,將較大的數字放在後面,直到將所有數字全部排序。

15.字串與陣列

在c語言中,是沒有辦法直接定義子字串資料型別的,需使用陣列來定義所要的字串,形式如下:

char 字串名稱[長度] = 「字串內容」;

char 字串名稱[長度] = ;

注:1.中的長度可以省略不寫;

2.採用第二種方式最後乙個元素必須是』\0』,表示結束;

3.第二種方式不能寫中文!;

輸出字串時,要使用:printf("%s",字元陣列名);或puts(字元陣列名);

16.字串函式

strlen(s):獲取字串s的長度;

2.strcmp(s1,s2):比較字串;比較的時候會把字串轉換成ascii碼再進行比較,返回結果為0表示s1和s2的ascii碼值相等,返回結果為1表示s1比s2的ascii碼大,返回結果為-1表示s1比s2的acsii碼小;

3.strcpy(s1,s2):字串拷貝;s2會取代s1中的內容;

4.strcat(s1,s2)將s2拼接到s1後面;注意:s1的length要足夠才可以!

5.atoi(s1)將字串轉為整數!

17.多維陣列

資料型別 陣列名稱[常量表示式1]…[常量表示式n];

多維陣列的初始化與一維陣列的初始化類似也是分兩種:

1、資料型別 陣列名稱[常量表示式1][常量表示式2]…[常量表示式n] = ,,…,};

2、資料型別 陣列名稱[常量表示式1][常量表示式2]…[常量表示式n]; 陣列名稱[下標1][下標2]…[下標n] = 值;

多維陣列初始化要注意以下事項:

1、採用第一種始化時陣列宣告必須指定列的維數。因為系統會根據陣列中元素的總個數來分配空間,當知道元素總個數以及列的維數後,會直接計算出行的維數;

2、採用第二種初始化時陣列宣告必須同時指定行和列的維數。

18.多維度陣列的遍歷

使用巢狀迴圈

注意:多維陣列的每一維下標均不能越界!

python基礎語法回顧

列表 1 正向單索引 list1 張三 男 33,江蘇 碩士 已婚 身高178 體重56 取出第乙個元素 print list1 0 取出第四個元素 print list1 3 取出最後乙個元素 print list1 1 print list1 6 取出最最後乙個元素 print list1 1 ...

c基礎回顧

發現乙個很好的c學習 做了一些練習 include include define arrlen arr sizeof arr sizeof arr 0 f int a ff int a fff char ch char ffff char ch fffff int intarr intarr 2 a...

C 基礎回顧

很簡單 寫個複數的class咯,注意些基本細節 ifndef inc 2 9 complex h define inc 2 9 complex h class complex complex operator const complex double real const double imag c...