C語言基礎知識

2021-08-03 18:42:32 字數 3106 閱讀 3382

#include //包含標頭檔案,標頭檔案內,有對函式(printf)的宣告、全域性變數的定義、外部變數的定義、巨集的定義等

int main(int argc,char* argc)   /*主函式,乙個程式,有且僅有乙個主函式。主函式是程式的入口和出口,程式從主函式開始,從上往下,乙個乙個語句執行。執行到主函式中的最後一條語句(return)後,程式結束。*/

軟體=程式+文件

程式=函式+函式。。。

函式=資料結構+演算法

演算法:方法,整個步驟。

語句:在程式中,以 ;作為結束的**,表示一條語句。每個語句,就是乙個執行的步驟。

演算法五個特徵:

有窮性:每條語句,必須在一定的時間內,可以執行完。

確定性:每條語句,執行後的結果唯一

輸入:需要初始資訊。可以有多個輸入,或沒有輸入。

輸出:執行的結果,是為人所需的,必須要有輸出。

健壯性:即可行性,每個步驟的結果,和預期的相同。

kt教授 ——

>unix

彙編 ——> 與機器硬體一一對應;移植性(相容)很差

kt ——> bcpl ——> b語言

dr 和 kt ——> unix ——> 新的資料結構和語法 ——> c語言

dr 和 kt ——> unix   c語言

c語言基礎:

運算子:34種

+ - * / % ++ -- > < = == >= <= != !(非) || | & && ^ ~ << >> () {} \ . , ; ? " ' :

關鍵字:32個

字元:char

整形:int   

浮點型:float  double

空型別:void

long  short .....

控制語句:9個

選擇:2個   if       switch

迴圈:3個   for      while     do...while

返回:4個   return   break     continue        goto

c語言支援的基本資料型別:數值型,字元型,特殊型別

數值型:整數型別,浮點型別

整數型別:int:整型                       (佔4byte儲存空間)

unsigned int:無符號整型        (佔4b)

short:短整型                           (佔2b)

unsigned short;無符號短整型    (佔2b) 

long:長整型                              (佔4b)

unsigned long:無符號長整型    (佔4b)

浮點型別:float:單精度浮點型         (佔4byte)

double:雙精度浮點型     (佔8byte)

字元型:char:(佔1byte,表數範圍-128 - +127),

無符號字元型:unsigned char:(佔1byte,表數範圍0 - 255)

特殊型別:void:空型別(不佔儲存空間,通常用作型別佔位符)

構造型別:

陣列型別([ ])

結構體型別(struct)

共用體型別(union)

指標型別(*)   //(c語言的靈魂)

識別符號:函式名,變數名等。

規則:識別符號由字母、數字、下劃線組成,不能以數字開頭,不能和關鍵字相同,不同重名。

(計算機的世界是二進位制的,一切非二進位制資料要能被電腦程式處理,必須先轉換為二進位制形式(這個過程就稱為編碼),儲存器也只能存放二進位制資料)

儲存單位:用來衡量資料量的大小

bit 簡寫b,即位元或位,乙個二進位制數字(0或1)

byte 簡寫b,即位元組,1b = 8b

kb 千位元組, 1kb = 2^10b = 1024b

mb 兆位元組,1mb = 2^10kb

gb 吉位元組,1gb = 2^10mb

tb 太位元組,1tb = 2^10gb

計算機中,資料以補碼的形式存放

無符號數:(例)

原碼  3  0000 0011

反碼  ~  1111 1100

補碼  +1 1111 1101

有符號數:符號位(最高位/左邊)不變,(0為正數,1為負數)

正數或0:原碼、反碼、補碼相同(三碼歸一)

負數:首先計算出原碼,然後符號位保持不變,其他位按位取反就可以得到反碼,反碼再加1就可以得到補碼

不同進製間的互**二進位制(b),八進位制(o),十進位制(d),十六進製制(h)

十進位制整數轉換為二進位制的方法:除2取餘,逆序書寫

例:21d = 10101b   -21d = -10101b

十進位制整數轉換為八進位制或十六進製制的方法和轉換為二進位制類似

例:100d = 144o = 64h

二進位制整數轉換為十進位制的方法:每一位乘以其位權然後相加

例如:1010b = 1*2^3 + 0*2^2 + 1*2^1 + 0*2^0 = 10d

八進位制或十六進製制整數轉化為十進位制的方法和二進位制的類似

例如:a3b4h = 10*16^3 + 3*16^2 + 11*16^1 + 4*16^0 =41908d

二進位制整數轉換為八進位制或十六進製制

例:10011001b = 231o = 99h

八進位制或十六進製制整數轉換為二進位制

例:144o = 001100 100b   144h = 101000100b

十進位制小數轉換為二進位制的方法:乘2取整,順序書寫

例:0.125d=0.001b

十進位製小數數轉換為八進位制或十六進製制的方法和轉換為二進位制類似

二進位制小數轉換為十進位制的方法:每一位乘以其位權然後相加

例:0.10101b = 1*2^-1 + 0*2^-2 + 1*2^-3 + 0*2^-4 + 1*2^-5 = 0.5 + 0.125 + 0.03125

八進位制或十六進製制小數轉化為十進位制的方法和二進位制的類似

二進位制小數轉換為八進位制或十六進製制

例:0.1001011b = 0.454o = 0.96h

八進位制或十六進製制小數轉換為二進位制

例:a4.a3bh = 10100100.101000111011h

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.常量 程式執行期間值不能被改變的量 分為 整型常量,浮點...