糯米文學吧

位置:首頁 > 計算機 > C語言

C語言基本知識整理

C語言2.6W

C語言提供了許多低級處理的功能,保持着良好跨平台的特性,下面小編為大家整理了一些C語言的基本知識,一起來看看吧:

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 條件編譯與條件編譯

標籤:語言