變數屬性歸納小結

2021-06-01 19:52:29 字數 1861 閱讀 5552

乙個多月前開始學c與c++,可是感覺進步根本不大,究其原因,其一時間花的不多應該是原因,另一原因可能是最重要的原因吧,方法不對。

所以,很多人和我說,如果你每天堅持學一點,每天堅持總結,做筆記,你應該進步會很大。好吧,我採納了。。

今天開始,隔三差五寫點自己學到的東西,這樣可以讓我更懂。

因為是很新很新的手,所以如果看到覺得幼稚就輕輕飄過吧,願意幫忙的請不吝賜教(肯定有錯的),謝了。

前段時間一直糾結乙個問題,為什麼明明在函式裡的變數的值都已經改變了,而一返回主函式變數就變回來了(相信很多和我一樣的人也會疑惑吧),好在華哥說這是記憶體的乙個問題,你現在就先記住吧。後來陸陸續續和我講了呼叫函式是怎麼分配記憶體的,但是應該還是不這麼懂。

今天看了這個變數屬性的小結,感覺有一點相關,就總結下。

首先變數屬性大概可以認為分成時間上的和空間上的,

我先簡單說說時間上的,這樣變數就分為全域性變數和區域性變數,

區域性變數就是僅僅實在乙個函式裡有用(即它的作用域僅僅在這函式中),這裡注意對main函式也適用,不是感覺上main函式高階點。還有,上面我疑惑的問題中有關的就是,函式的呼叫中,形參就是區域性變數。

全域性變數的作用域是從定義處到原始檔結束為止,這個應該很好理解,但是就像書上說的一樣,盡量不要用,很容翻譯搞混,而且全域性變數一變就意味這可能很多地方就會變了,會使**失去可讀性和可靠性。

空間上的話,相對就複雜了。這就是變數的儲存期,可以分為四種儲存型別:auto,static,register,extern。就我理解的和看書的,我乙個乙個說過去。

auto:這是編譯系統自動分配空間的,就是動態儲存,也就是前面所說的區域性變數,我想這個就是我疑惑問題的根源吧。變數如果不在其作用域了,系統就會自動**掉。我們定義的很多變數都是auto的,像int a,char c,等等都是auto型別的,只是省略了這個。所以如果我們沒有初始化auto型別的變數的話,它的值就是隨意的。

static:(僅對靜態區域性變數說明)這型別是靜態儲存的,就是這個變數在整個程式中是不會被系統**的,即使已經不在它的作用域了(但是這個時候是不可以引用的)。而如果寫下這個ststic int a;(static char c),a的初始值就是0(空字元),這就是與auto不同的地方。還有就是,這種型別的變數只被賦值一次(在編譯時進行的) 。當然這個的缺點就是,要多占用記憶體的;當再次呼叫這個變數,他的值是上次呼叫的儲存下的值,容易和全域性變數一樣搞混,因此我想也盡量不要用吧。呵呵~~

register:這個都不這麼實用了,形象點就是你會經常把零錢放在好拿的口袋裡,而不放在錢包裡,register的性質類似零錢。(一句帶過吧,其實我也說不太清楚的,哈哈

extern:有時候會用extern來擴大全域性變數的範圍(1)如果是在乙個檔案中,用extern宣告過的全域性變數就可以在整個檔案用了(這個宣告叫提前引用宣告),而不是僅僅從定義處開始,這個作用有點像函式的宣告。(2)如果是在多個檔案中,用extern宣告過的可以講變數的作用擴發到所有檔案中(這個宣告叫外部變數宣告),當然這個和全域性變數等是類似的,使用的時候要謹慎。

static:(這裡對靜態外部變數)加上static後這個變數的就僅僅適用於這個檔案中,這樣就可以避免很多人寫的程式合起來後不會混掉。

另外再大致分下,

在靜態儲存區:1.靜態區域性變數  2.靜態外部變數   3.外部變數

在動態儲存區:1.自動變數(區域性變數) 2.形式引數    3.函式宣告那行括號裡的變數

在暫存器的:register變數

還有就是static的:1.在區域性變數前加上static,是區域性變數變成靜態區域性變數,很明顯就是將動態儲存變成了靜態儲存;

2.在外部變數前加上static,就是將可以在多個檔案中使用的轉成僅僅可以在該檔案中使用,但是注意這兩者都是靜態儲存方式。

終於大致寫完了,其實我覺得我寫得很亂,連我自己都不知道寫什麼,很多都是按照書上順序下的,有木高手指點啊。。。

css 屬性歸納

屬性 描述css background 在乙個宣告中設定所有的背景屬性。1background attachment 設定背景影象是否固定或者隨著頁面的其餘部分滾動。1background color 設定元素的背景顏色。1background image 設定元素的背景影象。1background...

flexbox屬性歸納

歸納一下flex的屬性,以防自己忘記。flex 布局,可以簡便 完整 響應式地實現各種頁面布局。flext盒子有兩根軸,水平軸,垂直軸 方便自己記憶 flex盒子內的元素我們稱為item。容器有6個屬性 flex direction flex wrap flex flow justify conte...

python函式小結歸納

總結了幾種函式的形式,大致有 1.無參函式 2.有參函式 3.有參預設函式 4.有參無序函式 5.函式動態引數,乙個 是元組 6.函式動態引數,兩個 是字典 無參函式 deffun a 5 b 3print 無參函式結果 print a b fun 有參預設函式 不在實參中傳入值的情況 parame...