C語言基本知識
C語言是一種結(jié)構(gòu)化語言,它有著清晰的層次,可按照模塊的方式對程序進(jìn)行編寫,十分有利于程序的調(diào)試,下面是小編精心整理的C語言基本知識,僅供參考,希望能夠幫助到大家。
【考點1】C程序
C語言程序結(jié)構(gòu)有三種: 順序結(jié)構(gòu) , 循環(huán)結(jié)構(gòu)(三個循環(huán)結(jié)構(gòu)), 選擇結(jié)構(gòu)(if 和 switch)
【考點2】main函數(shù)
每個C語言程序中main 函數(shù)是有且只有一個。讀程序都要從main()入口, 然后從最上面順序往下讀(碰到循環(huán)做循環(huán),碰到選擇做選擇)。
【考點3】存儲形式
計算機(jī)的數(shù)據(jù)在電腦中是以二進(jìn)制的形式保存。最低的存儲單元是bit(位),位是由為 0 或者1構(gòu)成。 byte 是指字節(jié), 一個字節(jié) = 八個位。數(shù)據(jù)存放的位置就是它的地址。
【考點4】注釋
是對程序的說明,可出現(xiàn)在程序中任意合適的地方,注釋從“/*”開始到最近一個“*/”結(jié)束,其間任何內(nèi)容都不會被計算機(jī)執(zhí)行,注釋不可以嵌套。
【考點5】書寫格式
每條語句的后面必須有一個分號,分號是語句的一部分。一行內(nèi)可寫多條語句,一個語句可寫在多行上。
【考點6】標(biāo)識符
合法的用戶標(biāo)識符考查:
合法的要求是由字母,數(shù)字,下劃線組成。有其它元素就錯了。
并且第一個必須為字母或則是下劃線。第一個為數(shù)字就錯了。
C語言標(biāo)識符分如下3類
(1)關(guān)鍵字。它們在程序中有固定的含義,不能另作他用。如int、for、switch等。
(2)預(yù)定義標(biāo)識符。預(yù)先定義并具有特定含義的標(biāo)識符。如define、include等。
(3)用戶標(biāo)識符。用戶根據(jù)需要定義的標(biāo)識符,符合命名規(guī)則且不與關(guān)鍵字相同。
關(guān)鍵字不可以作為用戶標(biāo)識符號。main define scanf printf 都不是關(guān)鍵字。迷惑你的地方If 是可以做為用戶標(biāo)識符。因為If 中的第一個字母大寫了,所以不是關(guān)鍵字。
【考點7】實型數(shù)據(jù)
實型數(shù)據(jù)的合法形式:小數(shù)形式和指數(shù)形式。掌握判定指數(shù)形式合法性。
2.333e-1 就是合法的,且數(shù)據(jù)是2.333×10-1。
考試口訣:e 前e 后必有數(shù),e 后必為整數(shù)。
【考點8】字符
字符數(shù)據(jù)的合法形式::
1 是字符占一個字節(jié),"1"是字符串占兩個字節(jié)(含有一個結(jié)束符號)。
0 的ASCII 數(shù)值表示為48,a 的ASCII 數(shù)值是97,A的ASCII 數(shù)值是65。
字符型和整數(shù)是近親:
char a = 65 ;
printf(“%c”, a); 得到的輸出結(jié)果:a
printf(“%d”, a); 得到的輸出結(jié)果:65
一般考試表示單個字符錯誤的形式:65 "1"
字符是可以進(jìn)行算術(shù)運(yùn)算的,記。 0-0=48
大寫字母和小寫字母轉(zhuǎn)換的方法: A+32=a 相互之間一般是相差32。
【考點9】整型數(shù)據(jù)
整型一般是兩個字節(jié), 字符型是一個字節(jié),雙精度一般是4 個字節(jié):
考試時候一般會說,在16 位編譯系統(tǒng),或者是32 位系統(tǒng)。碰到這種情況,不要去管,一樣做題。掌握整型一般是兩個字節(jié), 字符型是一個字節(jié),雙精度一般是4 個字節(jié)就可以了。
【考點10】轉(zhuǎn)義字符
轉(zhuǎn)義字符的考查:
在程序中 int a = 0x6d,是把一個十六進(jìn)制的數(shù)給變量a 注意這里的0x 必須存在。
在程序中 int a = 06d, 是一個八進(jìn)制的形式。
在轉(zhuǎn)義字符中, ’x6d’ 才是合法的,0 不能寫,并且x 是小寫。
‘141’ 是合法的, 0 是不能寫的。
‘108’是非法的,因為不可以出現(xiàn)8。
【考點11】算術(shù)運(yùn)算
算術(shù)運(yùn)算符一共有+、—、*、/、%這五個。%符號兩邊要求是整數(shù)。不是整數(shù)就錯了。
三種取整丟小數(shù)的情況:不是四舍五入是舍掉小數(shù)部分。
1、int a =1.6;
2、(int)a;
3、1/2; 3/2;
【考點12】強(qiáng)制類型轉(zhuǎn)換
將一個運(yùn)算對象轉(zhuǎn)換成指定類型,格式為(類型名)表達(dá)式
一定是 (int)a 不是 int(a),注意類型上一定有括號的。
注意(int)(a+b) 和(int)a+b 的區(qū)別。前是把a(bǔ)+b 轉(zhuǎn)型,后是把a(bǔ) 轉(zhuǎn)型再加b。
【考點13】賦值
是表達(dá)式就一定有數(shù)值。
賦值表達(dá)式:表達(dá)式數(shù)值是最左邊的數(shù)值,a=b=5;該表達(dá)式為5,常量不可以賦值。
復(fù)合賦值運(yùn)算符:注意:a*=m+2 是 a=a*(m+2)
自加、自減表達(dá)式:假設(shè)a=5,++a(表達(dá)式的值為6), a++(表達(dá)式的值為5);
j=a++;等價于j=a;a=a+1; 而j=++a;等價于a=a+1;j=a;。
考試口訣:++在前先加后用,++在后先用后加。
【考點14】逗號運(yùn)算
逗號表達(dá)式:優(yōu)先級別最低; 表達(dá)式的數(shù)值逗號最右邊的那個表達(dá)式的數(shù)值。
(2,3,4)的表達(dá)式的數(shù)值就是4。
【考點15】數(shù)制轉(zhuǎn)換
一定要記住二進(jìn)制 如何轉(zhuǎn)換成十進(jìn)制。
八進(jìn)制是沒有8 的,逢8 進(jìn)1,018 的數(shù)值是非法的。
【考點16】位運(yùn)算
C語言提供6種位運(yùn)算符:按位求反~,按位左移<<,按位右移>>,按位與&,按位異或|,按位或^。
總的處理方法:幾乎所有的位運(yùn)算的題目都要按這個流程來處理(先把十進(jìn)制變成二進(jìn)制再變成十進(jìn)制)。
異或運(yùn)算的規(guī)則:0異或1得到1,0異或0得到0,1異或1得到0?捎洖椤跋嗤瑸0,不同為1”。
C語言基本知識整理
基本數(shù)據(jù)類型
void:聲明函數(shù)無返回值或無參數(shù),聲明無類型指針,顯示丟棄運(yùn)算結(jié)果。(C89標(biāo)準(zhǔn)新增)
char:字符型類型數(shù)據(jù),屬于整型數(shù)據(jù)的一種。(K&R時期引入)
int:整型數(shù)據(jù),表示范圍通常為編譯器指定的內(nèi)存字節(jié)長。(K&R時期引入)
float:單精度浮點型數(shù)據(jù),屬于浮點數(shù)據(jù)的一種。(K&R時期引入)
double:雙精度浮點型數(shù)據(jù),屬于浮點數(shù)據(jù)的一種。(K&R時期引入)
_Bool:布爾型(C99標(biāo)準(zhǔn)新增)
_Complex:復(fù)數(shù)的基本類型(C99標(biāo)準(zhǔn)新增)
_Imaginary:虛數(shù),與復(fù)數(shù)基本類型相似,沒有實部的純虛數(shù)(C99標(biāo)準(zhǔn)新增)
_Generic:提供重載的接口入口(C11標(biāo)準(zhǔn)新增)
類型修飾關(guān)鍵字
short:修飾int,短整型數(shù)據(jù),可省略被修飾的int。(K&R時期引入)
long:修飾int,長整型數(shù)據(jù),可省略被修飾的int。(K&R時期引入)
long long:修飾int,超長整型數(shù)據(jù),可省略被修飾的int。(C99標(biāo)準(zhǔn)新增)
signed:修飾整型數(shù)據(jù),有符號數(shù)據(jù)類型。(C89標(biāo)準(zhǔn)新增)
unsigned:修飾整型數(shù)據(jù),無符號數(shù)據(jù)類型。(K&R時期引入)
restrict:用于限定和約束指針,并表明指針是訪問一個數(shù)據(jù)對象的唯一且初始的方式。(C99標(biāo)準(zhǔn)新增)
復(fù)雜類型關(guān)鍵字
struct:結(jié)構(gòu)體聲明。(K&R時期引入)
union:聯(lián)合體聲明。(K&R時期引入)
enum:枚舉聲明。(C89標(biāo)準(zhǔn)新增)
typedef:聲明類型別名。(K&R時期引入)
sizeof:得到特定類型或特定類型變量的大小。(K&R時期引入)
inline:內(nèi)聯(lián)函數(shù)用于取代宏定義,會在任何調(diào)用它的地方展開。(C99標(biāo)準(zhǔn)新增)
存儲級別關(guān)鍵字
auto:指定為自動變量,由編譯器自動分配及釋放。通常在棧上分配。與static相反。當(dāng)變量未指定時默認(rèn)為auto。(K&R時期引入)
static:指定為靜態(tài)變量,分配在靜態(tài)變量區(qū),修飾函數(shù)時,指定函數(shù)作用域為文件內(nèi)部。(K&R時期引入)
register:指定為寄存器變量,建議編譯器將變量存儲到寄存器中使用,也可以修飾函數(shù)形參,建議編譯器通過寄存器而不是堆棧傳遞參數(shù)。(K&R時期引入)
extern:指定對應(yīng)變量為外部變量,即標(biāo)示變量或者函數(shù)的定義在別的文件中,提示編譯器遇到此變量和函數(shù)時在其他模塊中尋找其定義。(K&R時期引入)
const:指定變量不可被當(dāng)前線程改變(但有可能被系統(tǒng)或其他線程改變)。(C89標(biāo)準(zhǔn)新增)
volatile:指定變量的值有可能會被系統(tǒng)或其他線程改變,強(qiáng)制編譯器每次從內(nèi)存中取得該變量的值,阻止編譯器把該變量優(yōu)化成寄存器變量。(C89標(biāo)準(zhǔn)新增)
流程控制關(guān)鍵字
跳轉(zhuǎn)結(jié)構(gòu)
return:用在函數(shù)體中,返回特定值(如果是void類型,則不返回函數(shù)值)。(K&R時期引入)
continue:結(jié)束當(dāng)前循環(huán),開始下一輪循環(huán)。(K&R時期引入)
break:跳出當(dāng)前循環(huán)或switch結(jié)構(gòu)。(K&R時期引入)
goto:無條件跳轉(zhuǎn)語句。(K&R時期引入)
分支結(jié)構(gòu)
if:條件語句,后面不需要放分號。(K&R時期引入)
else:條件語句否定分支(與if連用)。(K&R時期引入)
switch:開關(guān)語句(多重分支語句)。(K&R時期引入)
case:開關(guān)語句中的分支標(biāo)記,與switch連用。(K&R時期引入)
default:開關(guān)語句中的“其他”分支,可選。(K&R時期引入)
編譯
#define 預(yù)編譯宏
#if 表達(dá)式 #else if 表達(dá)式 #else #endif 條件編譯
#ifdef 宏 #else #endif 條件編譯
#ifndef 宏 #else #endif 條件編譯與條件編譯
【C語言基本知識】相關(guān)文章:
C語言基本知識整理01-18
C語言基本知識點歸納07-25
2015年計算機(jī)二級考試C語言復(fù)習(xí)重點:C語言基本知識(上)03-14
2015年計算機(jī)二級考試C語言復(fù)習(xí)重點:C語言基本知識(下)06-11
計算機(jī)二級《C語言》基本知識點04-26
C語言和C++的分別06-18
C語言和C++的區(qū)別04-01