文件總結17 C語言基礎

2021-08-10 21:54:05 字數 4708 閱讀 8569

*原始檔:hello.c

*標頭檔案:用#include包含

*關鍵字:關鍵字,32個關鍵字。main是主函式,程式執行入口。return是函式結束的標誌。

*符號:#號是c語言的一種符號,%取餘符號 ,++、–、&、|、~、!、;(一句**的結束標誌)。

注釋://注釋一行**的,多行的語句就用/…*/注釋。

*變數:是變化的,在計算過程中會發生變化的量。

*函式:函式小括號裡面引數列表,緊跟一對花括號,話括號裡面是函式體。

步驟:

編輯、編譯、執行、除錯

資料型別:整形(long int, short), 浮點型, 字元型。

負數、隱式轉換

位元組:所有的系統裡面,乙個位元組佔8bit。整形佔4個位元組32位。

[root@server desktop]# vim hello.c

#include

void main(void)

[root@server desktop]# gcc hello.c

[root@server desktop]# ls

a.out hello.c

[root@server desktop]# ./a.out

hello world!

背景知識:c語言順序結構、選擇結構、迴圈結構

1).if選擇結構

選擇結構,程式中會逐條判斷直到一條符合條件的語句。

注意:if + else之間不能有別的語句 。

if 可以單獨使用,else必須之前的語句必須有if,而且緊跟if 之後。

else if (表示式)

[root@server desktop]# vim if.c

#include int main(void)

else

}else

else

}printf("min=%d\n",min);

return0;}

[root@server desktop]# gcc if.c

[root@server desktop]# ./a.out

min=11

2).switch選擇結構
[root@server desktop]# vim switch.c

#include

int main(void)

else

}

[root@server desktop]# gcc switch.c

[root@server desktop]# ./a.out

b

2).迴圈結構,for while do{} while();

(1)、for(初始條件(賦值表示式); 終止條件(關係表示式); 迴圈增量(賦值))

for 和條件判斷的結合

注意:括號的問題

[root@server desktop]# vim for.c

#include

int main(void)

printf("a=%d\n",a);

return0;}

[root@server desktop]# gcc for.c

[root@server desktop]# ./a.out

a=120

(2)、while先執行終止的條件判斷,再執行迴圈體,迴圈體內包含迴圈增量(先判斷後執行)

[root@server desktop]# vim while.c

#include

void main(void)

}

[root@server desktop]# gcc while.c

[root@server desktop]# ./a.out

i=0

(3)、do while 先執行迴圈體,迴圈體包含迴圈增量,在進行判斷(先執行後判斷)

[root@server desktop]# vim dowhile.c

#include

void main(void)

while(i < 10);

printf("i = %d.\n", i);

dowhile(i < 0);

printf("i = %d.\n", i);

}[root@server desktop]# gcc dowhile.c

[root@server desktop]# ./a.out

i = 10.

i = 9.

i = 9.

《位操作符》

1).位與&

(1)注意:位與符號是乙個&,兩個&&是邏輯與。

(2)真值表:1&0=0 1&1=1 0&0=0 0&1=0

(3)從真值表可以看出:位與操作的特點是,只有1和1位於結果為1,其餘全是0.

(4)位與和邏輯與的區別:位與時兩個運算元是按照二進位制位彼次對應位相與的,邏輯與是兩個運算元作為整體來相與的。(舉例:0xaa&0xf0=0xa0, 0xaa && 0xf0=1)

2).位或|

(1)注意:位或符號是乙個|,兩個||是邏輯或。

(2)真值表:1|0=1 1|1=1 0|0=0 0|1=1

(3)從真值表可以看出:位或操作的特點是:只有2個0相位或才能得到0,只要有1個1結果就一定是1.

(4)位或和邏輯或的區別:位或時兩個運算元是按照二進位制位彼次對應位相與的,邏輯或是兩個運算元作為整體來相或的。

3).位取反~

(1)注意:c語言中位取反是~,c語言中的邏輯取反是!

(2)按位取反是將運算元的二進位制位逐個按位取反(1變成0,0變成1);而邏輯取反是真(在c語言中只要不是0的任何數都是真)變成假(在c語言中只有0表示假)、假變成真。

實驗:任何非0的數被按邏輯取反再取反就會得到1;

任何非0的數被按位取反再取反就會得到他自己;

4).位異或^

(1)位異或真值表:1^1=0 0^0=0 1^0=1 0^1=1

(2)位異或的特點:2個數如果相等結果為0,不等結果為1。記憶方法:異或就是相異就或操作起來。

位與、位或、位異或的特點總結:

位與:(任何數,其實就是1或者0)與1位與無變化,與0位與變成0

位或:(任何數,其實就是1或者0)與1位或變成1,與0位或無變化

位異或:(任何數,其實就是1或者0)與1位異或會取反,與0位異或無變化

5).左移位<< 與右移位》

c語言的移位要取決於資料型別。

對於無符號數,左移時右側補0(相當於邏輯移位)

對於無符號數,右移時左側補0(相當於邏輯移位)

對於有符號數,左移時右側補0(叫算術移位,相當於邏輯移位)

對於有符號數,右移時左側補符號位(如果正數就補0,負數就補1,叫算術移位)

*

********

****

#include

void main(void)

練習2:

練習:

1.給定乙個整型數a,設定a的bit3(為1),保證其他位不變。

hljs cpp">

void main(void)

2.給定乙個整形數a,設定a的bit3~bit7,保持其他位不變。

#include

void main(void)

3.給定乙個整型數a,清除a的bit15,保證其他位不變。

#include

void main(void)

4.給定乙個整形數a,清除a的bit15~bit23,保持其他位不變。

#include

void main(void)

5.給定乙個整形數a,取出a的bit3~bit8。

#include

void main(void)

6.用c語言給乙個整形數的bit7~bit17賦值937(其餘位不受影響)。

#include

void main(void)

7.用c語言將乙個整形數的bit7~bit17中的值加17(其餘位不受影響)。

#include

void main(void)

8.用c語言給乙個整形數的bit7~bit17賦值937,同時給bit21~bit25賦值17.

#includevoid main(void)

1 7 C語言基本運算子

算術運算子 在前,先自加 直減 然後參與運算 在後,先參與運算 然後自加 直減 如果 單獨為一行 的時候,不考慮上述問題 關係運算子 用於做多個資料之間的比較,資料之間的比較結果只可能是0 false 或1 true 特殊運算子 三目運算子 表示式?當表示式成立返回的內容 當表示式不成立返回的內容 ...

學習筆記17 C語言 結構 聯合 列舉

結構是由程式猿自己設計的一種資料型別,用於描述乙個事務的各項資料,由若干個不同的基礎資料型別組成。設計結構 struct 結構體名 定義結構體變數 struct 結構體名 變數名 注意 定義結構變數時,struct不能省略 定義並初始化結構變數 struct 結構體名 變數名 根據成員的順序進行初始...

17 C語言和設計模式(中介者模式)

中介者模式,聽上去有一點陌生。但是,只要我給朋友們打個比方就明白了。早先自由戀愛沒有現在那麼普遍的時候,男女之間的相識還是需要通過媒婆之間才能相互認識。男孩對女方有什麼要求,可以通過媒婆向女方提出來 當然,女方有什麼要求也可以通過媒婆向男方提出來。所以,中介者模式在我看來,就是媒婆模式。cpp vi...