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