譚浩強C 程式設計 學習小結(重要知識點)

2022-05-08 20:54:14 字數 2399 閱讀 7813

1. 函式呼叫應在函式宣告之後,函式宣告可在main上面,也可在main內部,或者在標頭檔案裡?

2. c語言標頭檔案以.h結尾,新的ansi c++推出的編譯系統不帶.h,c++保持相容,可並存。

3. c語言無命名空間,因此無需作using namespace說明

4. c語言中,main函式無返回值: void main(){}

c++中,int main()

5. 編譯(目標檔案 .o/.obj)+庫檔案和其他目標程式-->連線(彙編)(.exe)

6. c++資料型別:

(a)基本型別

整型:短整型short int 整型int 長整形 long int

字元型:char

浮點型:單精度型float 雙精度型double 長雙精度型 long double

布林型:bool

(b)構造型別

列舉型別enum

陣列型別

結構圖struct

共同體union

類型別class

(c)指標型別

(d)引用型別

(e)空型別

7.數值的表示

020 16 16l 1.6e1

8. 常變數必須在定義時同時給出賦值,不可分開

9. 用#define a = 100為常量,在編譯時做替換,記憶體中不存在常量

用const int a = 100為常變數(本身為變數,用const限制不可修改)

10.不同資料型別運算,先進行型別轉換

double<--float

|long

|unsigned

|int<--short, char

橫向為必須的轉換,從下往上優先順序更高(低優先順序往高優先順序轉換)

疑問:int與unsigned做運算,int怎麼換為unsigned???

11.型別不匹配的賦值過程

float/double-->int,取整數部分

int-->float/double,以浮點型儲存int對應值

double-->float,若數值超出範圍,則報錯

char-->數值,值為ascii

int/short/long-->char,取低8位賦值

signed-->unsigned,連帶符號位原內容照搬(數值和符號都發生變化)

例如-5賦值給unsigned int,可能變為4294967291

12.賦值運算由右至左執行

例如,a=b=5;相當於b=5;a=b;

再如,a+=a-=a*a,若a初值為12,則首先a-=a*a(a=a-a*a)得到a=-132

然後,a+=a(a=a+a),得到a=2a=-264

13.順序求職表示式(逗號表示式)

expr1,expr2: 值為expr2的值

例如(a=3*5,a*4),a+5值為65

14.\ddd為八進位制

\xhh為16進製制

15.對於輸入流,系統會根據變數的型別從輸入流中提取相應長度的位元組。

例如,char c1,c2; int a; float b;

cin>>c1>>c2>>a>>b;

輸入1234 56.78

則,c1='1';c2='2';a=34;b=56.78;

16.輸出流格式(引用標頭檔案)

預設cout輸出流有效位數為6,可以通過cout<;

t max(t a, t b);

22.記憶體中使用者使用的儲存空間:

(1)程式區

(2)靜態儲存區

(3)動態儲存區

全域性變數儲存在靜態儲存區,在程式開始時給全域性變數分配儲存空間,在程式執行過程中占用固定的儲存單元,而不是動態的分配和釋放。

動態儲存區:形參,區域性變數,現場保護

23.c++中變數的除了資料型別屬性之外,還有儲存類別(storage class)

儲存方法分為靜態儲存和動態儲存,具體分為自動【(auto)】、靜態【staic】、暫存器【register】和外部【extern】

23.靜態區域性變數賦初值是在編譯時進行,若在定義時不賦值,編譯時自動賦值0或空字元

24.暫存器變數存放在暫存器中,避免了每次都要記憶體中訪問。對於使用十分頻繁的變數,可以在宣告為暫存器變數(例如次數較多的while迴圈)。

register int i;

eg.register double sum = 0;

register int i=0;

register int j=0;

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

;int a[10]=;//未定義部分預設0,長度為10

int a=;//長度為5

int a[4] = ,};

int a[3] = ,{},}; //3*3

char s[10] = ; //未定義部分預設'\0'

C 重要知識點

參考從4行 看右值引用 什麼叫左值,什麼叫右值?可以對表示式取位址的是左值,不能對表示式取位址的是右值。例如 int a 1 這裡a是變數,在棧中為其分配了具體的位址,是左值。1是右值。例如 int a std max 1,3 max方法的返回值是右值,在賦值給a後會被銷毀,因此是右值。什麼是右值引...

c 知識點小結

1 sha1加密 using system.security using system.security.cryptography public static string sha1signature string str c sha1演算法實現及注意問腿 2 c 獲取時間方法 datetime.n...

網路程式設計知識點小結

目錄二 socket c s 客戶端和伺服器 b s 瀏覽器和伺服器,本質上還是客戶端和伺服器 tcp 基於資料流的可靠協議 三次握手 四次揮手 udp 基於資料報的不可靠協議 在傳輸層和應用層之間的一層抽象層,可以操作網路層和傳輸層 1 socketserver模組實現tcp簡單通訊 服務端 匯入...