C語言基礎知識

2021-07-10 21:53:57 字數 3445 閱讀 3967

1.c語言介紹

1)c語言於2023年發明,c語言是一門面向過程的語言。

2)c語言特點:豐富的運算子,豐富的資料型別,可以直接操作硬體,搞笑的**目標,可移植性好。

3)c語言版本:2023年c語言標準被批准,這個版本的c語言標準通常被稱為ansi c。2023年,國際標準化組織iso又對c語言標準進行修訂,在基本保留原來c語言特徵的基礎上,針對應該的需要,增加了一些功能,命名為c99。 2023年12月8日,iso正式公布c語言新的國際標準草案:c11。

4).c語言程式

mian函式是程式的入口,乙個程式只能有乙個main函式,需要乙個int返回值。返回值int可以省略,預設為int,main()函式中可以不提供return

#include void showmessage()

main(int argc, const char * argv)

例子2

int main(int argc, const char * argv)

5).#include是預處理指令,用於包含指定檔案,它的實際工作就是將檔案複製到指定的位置。包含的檔案可以是任意的檔案,不一定是.h檔案。#include包含檔案時有兩種方式:<>和「」。<>只會包含庫函式檔案,適用於包含庫函式。「」先查詢當前目錄下檔案,在查詢庫函式。

編譯:將對應的.c 原始檔編譯成目標檔案.obj。

7).c語言關鍵字

c語言關鍵字是c語言中特殊保留的符號,提供特殊含義,也稱「保留字」。c語言中一共有32個關鍵字,都有特殊的含義,都是小寫。

2.c語言資料型別

1).資料型別分類

基本型別:整型(int)浮點型(float,double), 字元型(char)

構造型別:陣列,結構體(struct),列舉(enum),共用體(union)

指標型別(void*):

空型別(void):

2).型別修飾符

short短型,修飾int,double.

long長型,修飾int,double。

signed有符號型,修飾int,char。

unsigned無符號型,修飾int,char

資料型別在不同編譯器環境中的位元組長度

資料型別

16位編譯器(位元組)

32位編譯器(位元組)

64位編譯器(位元組)

char11

1int24

4float44

4double88

8short int 22

2unsigned int24

4long44

8unsigned long44

8long long88

8void *24

8 3.變數、常量

1)變數

值經常發生改變的資料儲存,用變數來表示,比如int a = 1,a就是變數。變數的定義的目的是在記憶體中分配一塊記憶體空間來儲存資料。

2)變數的格式:變數型別  變數名稱

3)變數的賦值:可以是乙個變數的值,也可以連續賦值,比如,int a =1; int b = a以及int a = b= 1;

注意:變數名不能相同,在同乙個作用域內

4)常量

就是值不發生改變的的資料,用常量來表示,比如,1,2.2,『a』等都是常量。

5)常量分類:整型常量,浮點型常量,字元型常量,字串常量。

4.printf,scanf函式

1)printf()函式 ,輸出函式

格式符

格式符說明

%d帶符號十進位制形式輸出整數  int

%u不帶符號十進位制輸出整數 unsigned int

%o不帶符號八進位制輸出整數

%x以不帶符號十六進製制輸出整數

%c輸出乙個字元

%s輸出乙個或者多個字串

%f以小數形式輸出單精度,雙精度浮點數,預設6位小數

%e以指數形式輸出單精度,雙精度浮點數,預設6位小數

2)scanf()函式,輸入函式,從鍵盤接收使用者輸入的函式。

引數接收以回車進行結束操作

如果引數接收多個引數,引數之間的分隔符是任意的,但是如果分隔符是空格可以使用空格,tab,回車,(最後乙個回車結束任務);

scanf函式的格式:scanf("格式控制符",輸入項的位址列表)

scanf("%f",&score); //不允許%m.nf形式,但是%mf可以

注意:scanf的第乙個引數中不要包含\n,比如scanf(「%d\n」,&a); 這將導致scanf函式無法結束

5.基本運算

c語言共有34種運算子,主要分以下幾種:

1).算術運算子

+、-、*、/、%,++,--

2).關係運算子

==、!=、>、<、>=、<=

3)邏輯運算子

&&、||、!

4)按位運算子

&、|、^、~、<<、>>

5)賦值運算子

=、+=、-=、*=、/=、%=、<<=、>>=、&=、^=、|=

6)三目運算子

a>b? a:b

6.流程控制

1)分類:

順序結構,選擇結構,迴圈結構。

2)選擇結構-if

a.if(){}

b.if(){}else{}

c.if(){}else if(){}else{}

3)選擇結構-switch

switch(表示式)

4)迴圈結構-while

while(表示式)

5)迴圈結構-do-whiledo

{}while

( 條件

);6)迴圈結構-for

for(表示式1;表示式2;表示式3){}

注意:死迴圈for(;;),for迴圈內的作用域混淆(for (int i = 0; i<5; i++)  int a = 10;)。

7)break和continue

break使用於switch和迴圈結構,continue使用於迴圈結構

C語言基礎知識

1 的問題。int i 1 int j 2 int k i j printf d k 輸出k為3。編譯原理有關編譯器在詞法解析的時候,對於運算子,總是查詢最大的匹配也就是說,i j,編譯器在找到 的時候,它不立即理解為 而是繼續下乙個字元,下乙個字元仍然是 可以組成 再往下的話便是 不成立了。所以i...

C語言基礎知識

一 位元組對齊 位元組對齊的原因,是機器在訪問記憶體中儲存的資料的高效性。通常機器是機器位數為自然邊界來訪問記憶體的,如果乙個4位元組整形數,所在的記憶體不在虛擬記憶體的自然邊界。則cpu需要讀多於一次的資料,這樣就降低了效率。所以,簡單地說,就是保證cpu指令在訪問資料的時候,能一次讀取,而不需要...

C語言基礎知識

1.進製 1 基數 基數為n,代表n進製 2 位權 從個位開始,向左依次編號為0,1.x 分別代表n進 制的x次 3 八進位制以0開頭,十六進製制以0x開頭 4 x 進製轉 進製 按權求和 十進位制轉 x進製 連除倒取餘 2.基本資料型別 3.常量 程式執行期間值不能被改變的量 分為 整型常量,浮點...