之前學過c語言不過比較淺顯,好多功能都不知道為什麼是這麼得到的,機緣巧合之下,找到了關於c語言深入學習的資源。很是開心。今天就分享給大家。希望大家能有所收穫。?
c語言中的資料型別:主要分為整形,浮點型,字元型。其對應為int等,float等,char等。
typedef:是給某種功能另外叫乙個名字。可以是資料型別,結構。對於結構沒什麼複雜的。對於資料型別。例:typedef char* a, b.意味著a和b都是字元指標。而char* a, b,則a是字元指標,b是字元變數。typedef可以增加函式某些變數的可移植性。
void :不能定義變數。當void作為函式的形參時,這個函式不能傳入實參。當用void定義函式時,這個函式不能返回某個值。當用void定義指標時,其是萬能指標。(具體萬能指標的用途待定)。
sizeof():不是乙個函式,只是乙個操作符。sizeof()所得出的是無符號整型,即使減去比自己大的值,得出的結果也是正數。
變數的修改方式有直接修改,和間接修改。直接修改:直接賦予變數的其他值,間接修改:利用指標去修改。注意指標移動的多少。
記憶體的分割槽:分為**區,資料區。
資料區又分為全域性初始化資料(靜態資料data)和未初始化資料(bss)系統賦予初始值為1
棧:是系統自己存入釋放的,不需要程式設計師手都釋放,遵守先進後出原則。系統賦予初始值為null
堆:使用malloc(),calloc(), realloc()創造,需要使用者手動釋放記憶體。free
static:靜態資料。靜態全域性變數和區域性全域性變數。不能用於外部鏈結,只能作用於內部,可以修改。
extern:外部連線屬性。在其他檔案中使用時,需要告訴編譯器這是個外部連線屬性即可。例如:extern int bg_a.
const:修飾全域性變數時,不可以修改。修飾區域性變數時可以修改部分**。
字串常量:有些編譯器可以修改字串,有些不能修改。ansi沒有定義字串是否可以修改。
陣列:當在本函式內測量其長度時,他的長度為其內的所有數值位址的長度。當作為形參在另乙個函式中測量時,其長度為第乙個值的位址。
C語言深入學習之指標
一 指標是什麼?c語言裡,變數都是存放在記憶體裡,而記憶體其實就是一組有序位元組組成的陣列,每個位元組都有唯一的記憶體位址。cpu 通過記憶體定址對儲存在記憶體中的某個指定資料物件的位址進行定位。這裡,資料物件是指儲存在記憶體中的乙個指定資料型別的數值或字串,它們都有乙個自己的位址,而指標便是儲存這...
C語言 陣列的深入學習
深入學習一下陣列 單元是依次相連線的。而且這多個變數必須單獨訪問,不可以一起訪問的。因為他們的位址彼此相連,所以使用指標 訪問這些變數就很容易了。這個位址在編譯器中決定具體數值,具體數值和變數名繫結,變數型別決定了這個位址的延續長度。3 陣列中幾個關鍵符號 a a 0 a a 0 的理解 1 a就是...
深入學習c 書單
本來有一本c 程式設計,一本c primer 沒怎麼看過 經過師兄推薦又買了effective c 和more effective c 技術面試的時候會問的比較深 要研究的比較透徹一些 第一篇一些同學問我,如何學好c 我沒有別的辦法給你們,唯一的辦法就是讀書,讀大 量的書,就可以解決。要把c 作為日...