C語言知識點小總結

2021-09-28 19:28:40 字數 2590 閱讀 7666

定義和宣告的最大區別在於:

定義建立了變數(物件)並為這個物件分配了記憶體。

宣告:只是告訴編譯器這個變數名被提前預定了

register要求編譯器盡可能的將變數放在cpu內部暫存器中,而不會是通過記憶體定址訪問以提高效率。

break可以跳出所有迴圈 。do while . while . for

迴圈語句的主要點,建議把最長的迴圈放在最內層,最短的迴圈放在最外層,減少少cpu跨切迴圈層的次數

void真正發揮的作用在於

對函式返回的限定

對函式引數的限定

void *,任何型別的指標都可以直接賦值給他無需強制轉換;

void

*p1;

int*p2;

p1 = p2;

//正確

p2 = p1;

//錯誤

如果函式沒有返回值,那麼宣告應該為void型別。

在c語言中,凡是不加返回值型別限定的函式,就會被編譯器作為返回整型值處理。但是很多時候都被誤以為void

使用void 指標型別要非常小心。

按照ansi(american national standards institute)標準,不能對void指標進行演算法操作,

void

* pvoid;

pvoid++

;//不合法

pvoid +=1

;//不合法

gnu卻認為void*的演算法操作和char *一致

void

* pvoid;

pvoid++

;//合法

pvoid +=1

;//合法

如果函式的引數可以是任意型別的指標,那麼應宣告其引數為void*

例如記憶體操作函式memcpy()和memset()

void

*memccpy

(void

* dest,

const

void

*src,size_t len)

;void

*memset

(void

* buffer,

int c, size_t num)

;

void不能代表乙個真實的變數,因為定義變數時必須分配記憶體空間。

void a // error

function

(void a)

;// 錯誤

區域性變數,位於棧記憶體中,在函式結束後,就被釋放

const也許被稱為readonly才對 唯讀變數

修飾一般變數

int

const i =

2; 或 const

int i =2;

//都可以

修飾陣列

int

const a[5]

=; 或

const

int a[5]

=;

修飾指標

const

int*p ;

//p可變,p指向的物件不可變

intconst

*p ;

//p可變,p指向的物件不可變

int*

const p;

// p不可變,p指向的物件可變

const

int*

const p;

//指標p和p指向的物件都不可變

記憶方法,先忽略型別名,(編譯器解析的時候也是忽略型別名的)

const 離那個近,就修飾誰,誰就不可以改變

const 修飾函式引數,起到保護作用,避免引數被函式體內意外改變。

void

fun(

const

int i)

;//i 在函式體中不能被改變。

const 修飾函式的返回值,這樣返回值不可被改變,達到保護的目的。

例如 const

intfun

(void

);

在另一檔案中引用const唯讀變數:

extern

const

int i;

//正確的宣告

extern cons int j =10;

// 錯誤,唯讀變數不能被改變

c 知識點小總結

static inline 指標與引用 零碎知識點 修飾符,代表所修飾的型別的物件 變數不可更改。預設檔案區域性變數。普通變數預設為extern 定義時必須初始化。初始化之後不能更改。指標指向const物件 const 指標本身的值可更改。可指向非const物件。但不能通過這個指標更改其所指物件的值...

C語言小知識點

比較難歸類,就單獨列舉在這裡 無型別識別符號,只能宣告函式的返回型別,不能宣告變數,可以宣告指標 int a a 55 a 代表a的位址 a 代表 位址 就為位址對應的值,就是55 先來看看整數儲存的例子 include includeusing namespace std define print...

C語言知識點總結

有段事件沒有寫c程式了,有些地方有些生疏了。這兩天事情比較少,準備再系統的看一邊c的基礎知識。這裡再總結一下平時沒太注意的知識要點。1 c語言的語句塊在c語言中,任何允許出現語句的地方既可以是由 號結尾的一條語句,也可以是由 括起來的若干條語句或宣告組成的語句塊 statement block 語句...