資料型別:
八進位制數:一般以0開頭;
十六進製制數:以0x開頭;
字元資料:單字元以char 定義,每個字母對應有ascii碼,小寫字母比大寫字母大32,a的ascii碼為65,字元的比較也是通過ascii的值來比較的;
i+++j是i(++)+j,但是這是很不規範的做法。
輸入輸出
%d 整數 %ld長整型
%x 十六進製制 %u無符號數
%f 浮點數 %o八進位制
%c 字元 %e指數形式
%s 字串
佔n列取m位小數 %n.mf
scanf一般加&,遇到已經是位址的不加,比如指標,陣列。
比如:
char
str[10];
scanf("%s",str);//以空格判斷輸入結束
printf不加&;
邏輯控制
邏輯表示式自左向右求解(如果沒有括號的話);
do while 和while的使用關鍵是看while條件的初值是否是1,do while、while和for可以通用,for迴圈可以實現一切迴圈。for(t1;t2;t3)先執行t1,判斷t2是否滿足;是則執行內容否則退出;內容執行完後執行t3,再判斷t2……。
go to一般不適用。
陣列
**一維陣列定義:**
char a[10]="asds";
char a[10]=;
char a[10]=;
這三者的定義是一樣的,在他們後面加上\0也還是一樣,編譯器會自動在後面加上\0。但是\0沒有佔字元位置!
上述這個字元陣列a,可以存放的字元數是10個不是9個。
strlen(a)=4; 實際的字元數
sizeof(a)=10;陣列總共可以容納的字元數
定義全0
int a[10]=;
**二維陣列的定義:**
int a[3][3]=,,};
int a[3][3]=;
int a[3]=;
這三個表示式一樣。
初始化原則,從左往右從上往下,少則補0.
字串處理
puts(char*)輸出乙個字串;
gets(char*)輸入乙個字串;//以回車判斷輸入結束
strcat(char*,char*)將後乙個字串接到前乙個的後面
strcpy(char*,char*)將後乙個字串賦值到前乙個字串
strncpy(char*,char*,n)將後面乙個字串的前面n個字元複製到前乙個字串
strcmp(char*,char*)字串比較函式
strlen(char*)返回字串的實際長度
strlwr(char*)將字串大寫換小寫
strupr(char*)將字串小寫換大寫
函式
被調函式在主調函式後需要宣告
在定義函式時定義的形參在未出現函式呼叫時是不佔據記憶體空間的,只有被呼叫了以後才被分配記憶體單元,呼叫結束後記憶體單元被釋放。
函式呼叫時,給形參分配儲存單元,並將實參對應的值傳遞給形參,呼叫結束後,形參單元被釋放,實參單元保留原值。
一維陣列做函式引數形式為 str,陣列名做引數時,不是傳值,而是把首元素的位址傳遞給形引數組,即為兩個陣列佔據乙個記憶體。
多維陣列做函式引數形式為 str[size],第一維的大小可以省略,但是第二維的不能省略。
**變數的儲存空間有:**
程式區、靜態儲存區、動態儲存區
全部變數是存放在靜態儲存區中的,程式中絕大部分變數都是在動態儲存區里的。
**變數的儲存類別有:**
靜態儲存類、動態儲存類
具體有auto:自動變數,絕大部分區域性變數均為自動變數。
不賦初值時為乙個不確定的值。
static:靜態變數宣告,是靜態儲存類別,靜態宣告不是指變數值無法改變,而是指變數值被儲存,不會被銷毀,直到程式執行結束才銷毀,比如區域性函式中的靜態變數每一次執行都被儲存。
靜態區域性變數不賦初值的話則預設為0或空字元。
外部函式仍然無法引用區域性靜態變數。
register:變數存放在暫存器中,當變數多次使用的時候可以增加執行效率。
只有區域性自動變數和形式引數才可以作為暫存器變數。
數量有限,不能任意呼叫,對於不同的系統有不同的限制。
區域性靜態變數不能宣告為暫存器變數。
extern:外部變數宣告,從函式定義處開始一直到檔案末尾。
可以在多個檔案中使用,在乙個檔案中定義,其餘檔案中宣告。
比如: file1中為 int a;
file2中為extern a;
C語言 C語言複習筆記
為什麼要學c語言?1972年,美國貝爾實驗室的 d.m.ritchie 在b語言的基礎上最終設計出了一種新的語言,他取了bcpl的第二個字母作為這種語言的名字,這就是c語言。總所周知,任何東西的盛行都只是乙個階段,語言也是如此。但是,c語言是個例外,乙個矗立了半個世紀的語言,其中好壞,我想應該不難了...
c語言複習筆記
指標部分 1.指標型別說明 main 2.指標加減運算說明 指標的加減運算 只能對陣列指標進行,其他型別的指標變數是無意義的 int pt pt pa 1 陣列後移一位 pt pa 1 陣列前移一位 pt pa pt pa pt pa pt pt 在陣列中!兩個指標變數可以相減,但不能相加!int ...
C語言複習筆記
前言 本篇是個人複習基礎知識過程中遇到一些容易混淆的點在此記錄,如有錯誤請指正。如 int 9在的原碼為 0 0 0 1 1 0 0 0 9的補碼為 1 1 1 0 0 1 1 1 1 1 1 1 0 1 0 0 0 比如 int x y z 一般來說編譯器會把這三個變數分配到一段連續的記憶體裡。但...