1.register
修飾經常被訪問的變數,它所修飾的變數,請求編譯器的盡可能的將變數儲存在cpu的暫存器中。這樣有助於減少訪存的時間
有助於程式的效率。
它所修飾的變數不能用&位址,因為&這個是取的是記憶體空間的的位址,但是register 修飾的的變數儲存在暫存器裡面。
還有register只能修飾cpu能夠接受的型別,例如cpu是不能進行浮點型別的計算。
register修飾的是區域性變數不能修飾全域性變數,因為只有這個程序知道這個變數的在**儲存著,而其它的程序不知這個
變數儲存的地方。
2.static
static不僅可以修飾變數還能修飾函式
修飾變數的時候,能修飾區域性變數和全域性變數。
修飾區域性的變數,主要是為延長變數的生命的週期,需要延長生命週期的的變數不定義成全域性變數,這是因為全域性變數誰都
可以訪問,容易被修改。
修飾全域性變數的時候,使這個全域性變數只能在這個檔案中使用,也有助於其他檔案對於這個變數名重新定義。
修飾函式的時候,也是是這個函式只能在本檔案裡面呼叫,其它檔案不能呼叫。
被static修飾的變數儲存在記憶體的資料段中的data段裡面,只有在程式結束的時候,空間才會釋放。
3.const
const修飾的變數名,是唯讀變數,
什麼是唯讀變數:
const int num = 5;
num = 6;//這是錯誤的,
int *p = #
*p = 6;
這樣是可以的,所以constz修飾的變數只是不能通過變數名字來改變其值,但是空間裡面的值是可以被改變的
const int *p;
int * const p;
這兩個是不一樣的,乙個是*p不能被改變,下面乙個是p不能被改變。(就近原則)
const主要的用途是函式傳參的時候,修飾形參的。因為在函式傳參的時候,容易照成錯誤的通過修改的形參的值從而來
修改到實參的值。
舉個例子:strcpy這個函式 函式的宣告 char * strcpy(char *dest,const char *src );這個函式只需要將src字串
拷貝給dest就好了,只需要唯讀,不需要改變,一旦在函式在定義的時候,一旦改變了*src,那麼編譯器會直接的報錯。
防止在賦值的時候,做了其它的操作修改原來的字串。
4.extern
extern int count;
這個含義是說明count在其它的檔案裡面定義過,再用extern的時候需要標明其變數的資料的型別;
extern也可以修飾函式,也需要標明函式返回值,以及引數的型別。
5.tpyedef
是幫乙個複雜的宣告定義取乙個簡單的名字(簡單不失越短越好,有時候起到一定的注釋**的作用,可以取多個名字)
,可以理解為取別名,
俗一點的說,你大名叫上官陽陽,但是人家裡面,家裡人叫你的小名陽陽,同學有時候叫你啊陽,代表的是同乙個人。
主要的好處:
1.提高了**的移植性。例如你在乙個很長的**裡面多次用到unsigned char 取名字為char ,突然有一天需要變成
signed char的時候,只需要,將typedef unsigned char char,改為typedef signed char char
2.方便在程式設計中起名字的話,起到乙個注釋的作用(乙個宣告定義可以取多個名字)
3.方便簡化變數的定義,例如乙個結構體,你每次用它需要兩個單詞,但是typedef以後為乙個單詞。
注意一下,toyedef後面需要加分號,#define後面不需要加分號,不要搞混了。
const關鍵詞的作用
c語言const是畢業生面試被提問比較高的乙個問題,這裡簡單總結一下 1 定義const常量,使其具有不可變性 const修飾的int型,再進行數值計算會報錯2 便於進行型別檢查,告訴編譯器處理內容,消除隱患 例如 void f const int i 編譯器就會知道i是乙個常量,不允許修改 3 方...
關鍵詞作用和選擇技巧
與查詢資訊時盡量使用單詞原形態相反,在提交 時我們最好使用單詞的較長形態,如可以用 games 的時候,盡量不要選擇 game 因為在搜尋引擎支援單詞多形態或斷詞查詢的情況下,選用 games 可以保證你的網頁在以 games 和 game 搜尋時,都能獲得被檢索的機會。別忘錯拼的單詞?停用詞 過濾...
關鍵詞密度
百科名片 目錄 隱藏 什麼是增加keywords密度的最好方式 關鍵字堆砌 keyword stuffing 的定義 關鍵字堆砌 keyword stuffing 關鍵字堆砌 keyword stuffing 是指在乙個網頁中非常密集地放置關鍵字。一般說來,如果關鍵字的出現過於頻繁,就會蓋過網頁的其...