c語言深入理解(二)

2021-09-24 18:44:43 字數 706 閱讀 3160

1.void關鍵字的作用:void的字面意思是空型別,void*可以指向任何資料型別的資料。void的發揮作用在於:對函式返回值的限定,對函式引數的限定。void 則不同,任何型別的指標都可以直接賦值給他不必進行強制轉換,但void 並不意味著可以直接賦值給任何型別。

2.按照ansi標準,不能對void指標進行演算法操作,即以下都是不合法的 void * pvoid ;

pvoid++ × 因為進行演算法操作的指標必須是確定的知道其指向資料型別大小的,也就是說必須知道記憶體且目的位址的確切值。int * pint;pint ++正確。

3.void不能代表乙個真實的變數,因為定義變數必須為其分配記憶體。 void a 錯誤,void的出現只是為了乙個抽象的需要。

4.return關鍵字:return語句不能返回指向棧記憶體的指標,因為該內存在函式體結束時被自動銷毀。列如:char * func(void)錯誤,因為str屬於區域性變數,位於棧記憶體中,在func結束時被釋放,所以返回str將導致結果錯誤。

深入理解C語言 深入理解指標

關於指標,其是c語言的重點,c語言學的好壞,其實就是指標學的好壞。其實指標並不複雜,學習指標,要正確的理解指標。指標也是一種變數,占有記憶體空間,用來儲存記憶體位址 指標就是告訴編譯器,開闢4個位元組的儲存空間 32位系統 無論是幾級指標都是一樣的 p操作記憶體 在指標宣告時,號表示所宣告的變數為指...

深入理解C語言 深入理解指標

關於指標,其是c語言的重點,c語言學的好壞,其實就是指標學的好壞。其實指標並不複雜,學習指標,要正確的理解指標。指標也是一種變數,占有記憶體空間,用來儲存記憶體位址 指標就是告訴編譯器,開闢4個位元組的儲存空間 32位系統 無論是幾級指標都是一樣的 p操作記憶體 在指標宣告時,號表示所宣告的變數為指...

深入理解C語言指標(二)

1.c語言記憶體分配 棧區 stack 由系統自動分配釋放,存放函式的引數值,區域性變數等資訊。堆區 heap 由程式設計師分配釋放,系統會在程式結束時 全域性區 靜態區 全域性和靜態變數存放在這裡,由系統 文字常量區 存放常量字串,由系統 程式 區 c語言堆內空間申請函式為 malloc size...