登入使用能幫助您收藏更多喜歡的好書,
希望大家都能多多登入,管理員在此感激不盡啦!
《從先天土木聖體到混沌電子道胎》第35章 C語言之指針(一)
  C語言中其他都很容易理解,也就指針是重難點。鑒於我也只是初學者,我就按我的理解寫一下我的理解。

  本章關鍵詞:指針類型,指針變量,強製類型轉換,指針訪問的位置和跨度。

  先說說指針類型,在C語言中,用int* p = NULL,可以創建一個空指針。而int*是這個指針的類型。當然,有int*,也有char*和double*,它們的區別就是訪問內存時,訪問的指針大小不一樣。

  例如,int*一次可以訪問4個字節,char*一次可以訪問1個字節。但是指針類型和指針所存的數據大小無關,因為,在X86,也就是32位環境下,所有指針變量的大小都是4個字節,只是訪問的位置不一樣。

  指針變量類似於整型變量,int a = 0中,a就是整型變量,而int* pa = 0x11223344中,pa就是指針變量。

  再說說強製類型轉換,將一個int*類型的指針賦值給一個char*類型的指針,往往會報錯,這時候就需要強製類型轉換。

  例如:int* pi =(char*)&pa

  最後再說說指針訪問的位置。

  準確來說,是指針訪問的區間,比如,對於一個int*類型的指針,它可以訪問的跨度是四個字節,char*類型的指針可訪問的跨度是一個字節。

  舉個例子,如果對int*類型的指針變量進行修改,讓指針變量變為0,像下面這個例子

  int a = 0x11223344;

  int* pa =&a;

  *pa = 0;

  (*pa是對指針變量進行了解引用,原本的pa已經是指針變量,而進行了解引用之後,*pa就變成了a,相當於內存中所存放的數據)

  那麽,在調出內存監控時,內存中的四個字節都變成了00。

  而如果用這個方式對char*類型的指針變量進行修改,只會把一個字符修改為00。

  指針訪問的跨度可以用打印指針變量來觀察。

  如果分別打印指針變量pa和指針變量pa+1,那麽,你會驚喜的發現,所打印的不一樣。而且,如果所定義的pa為int*類型的指針變量,那麽,pa+1就會比pa多4個字節的跨度,相當於直接把原來的4個字節長度給跨過去了,而如果是char*類型的指針變量,則pa+1會比pa的跨度多1個字節。
鍵盤左右鍵 ← → 可以切換章節
章節問題回報:
翻譯有問題
章節內容不符
章節內容空白
章節內容殘缺
上下章節連動錯誤
小說很久沒更新了
章節顯示『本章節內容更新中』
其他訊息