C備忘筆記

2021-07-03 19:18:29 字數 1893 閱讀 3395

main()函式是乙個特殊的函式,並不需要引數。

符號常量大寫,語句結尾無需分號。

#define number 10

const cant_modified = 'always';其值將不能被修改。

eof(end of file),定義在stdio.h中,是個constant,乙個整型數。

在沒有輸入時,getchar將返回乙個特殊值,被稱為eof。

#include 

main()

} /* simplify edition */

main()

}

賦值時也需要進行型別轉換,賦值運算子右邊的值需要轉換為左邊變數的型別,左邊變數的型別即賦值表示式結果的型別。

把較長的整數轉換為較短的整數或char型別時,超出的高位部分將被丟棄。

int i;

char c;

i = c;

c = i;

執行後,c的值將保持不變。但是如果反過來,把高位的轉換為低位,則有可能丟棄超出的高位部分。

所以當float f;轉換為int i;,即i = f;,小數部分將被捨棄,是進行四捨五入還是捨棄取決於具體的實現。

在任何表示式中都可使用強制型別轉換:(型別名) 表示式

note:強制型別轉換只是生成乙個指定的n的值,n本身的值並沒有變。強制型別運算子和其他一元運算子優先順序相同。

#include 

sqrt((double) n)

/* 2將被自動轉換為2.0 */

duble sqrt2(double);

root = sqrt2(2);

c中單雙引號是有區別的,單引號中表示字元,而雙引號表示字串。

因此'a'表示字元, 在ascii碼中對應數字為97 。

printf("%d\n", 'a');    /* 將會列印97 */
如果單單是用在變數上,兩者最後結果是一樣的:如n++++n結果是一樣的。 但是字首和字尾在c中還是有區別的:

++n表示先將n的值遞增1;

n++表示先使用變數n的值,再將n值遞增1。

所以,如果n的值為10:

x = n++;x的值還是10,n為11

x = ++n;x的值為11,n為11

表示式(a+b)++是非法的。

#include 

main()

結果為:wht

'\0'為字串結束符號)

n=2, a[n++] = 't'字尾自增此時最先作用的其實是a[n] = 't', 之後n才會做自增。

placeholder() {}像這樣什麼不執行任何操作,不返回任何值的空函式一般用來做預留。

如果函式定義中省略了返回值型別,則預設認為 int 型別。

int a, b, samll;

a = 10;

b = 20;

small = (a < b) ? a: b;

/* like python: small = b if a > b else a */

MFC(筆記備忘)

mfc應用程式程式設計 一 mfc的發展 vc 1.0 vc 5.0 vc 6.0 vc2008 sp1 vs2010 二 mfc基礎 1 mfc 微軟基礎類庫 採用類的方式,將win32 api等進行封裝,形成的庫.2 mfc相關的標頭檔案 afxwin.h 類似於windows.h afxext...

awk筆記備忘

awk pattern 0變數是指整條記錄,1表示當前行的第乙個域,2表示當前行的第二個域,n當前記錄的第n個域,欄位間由fs分隔,每行按 fs 字段分隔符 預設是空格或tab cat 1.txt beth 4.00 0 dan 3.75 0 kathy 4.00 10 mark 5.00 20 m...

c 知識備忘

這裡是作者遇到的一些c 程式設計的知識簡介,可能每個條目都不全,只選取最常用的用法。template 形參 class可以用 typename代替 返回型別名 函式名 引數列表 函式體類模板 template class類名 編譯器將形參型別確定為實際的模板實參型別,並且獲得了乙個普通的類的過程 t...