C語言指標深入分析

2021-10-08 03:15:07 字數 1030 閱讀 5752

指標是c語言的精髓,也是c語言的難點,一起加油鴨!

參考c語言指標詳解(經典,非常詳細)

指標本質上就是乙個位址,占用的儲存空間固定,一般為四個位元組。很重要的一點是指標指向的只是資料的首位址,那麼計算機如何知道這個資料具體有多長呢?答案是通過指標的型別來確定。換句話說,指標的型別的作用就是告訴計算機取資料的時候該從首位址開始取出多少個位元組的資料

那麼指標的兩個關鍵屬性就是:指標的資料和指標的型別

前者提供首位址,後者提供資料長度。

資料長度由指標型別決定,型別包括基本資料型別使用者自定義資料型別

指標的型別指標指向的資料型別不一致的時候,就會出現資料長度的錯誤。

c語言指標詳解(經典,非常詳細),這裡有很多詳細的例子。

有如下的資料結構

typedef

struct

sqlist;

定義ptr1為指標的陣列,和ptr2為指標的指標

sqlist* ptr1[2]

;//ptr1是乙個位址常量,本質上和ptr2是一樣的,只不過ptr1不能改動數值

sqlist*

* ptr2;

//ptr2是指向指標的指標

ptr1的結構如圖所示,其中ptr1是乙個不可更改的位址常量。ptr1和ptr1+1實際上並不儲存在某個暫存器中,下圖只是為了方便表示,後四個矩形框裡的才是實際的變數空間。

ptr2的結構如圖所示,ptr2是乙個可以重新賦值的變數。這三個矩形框都是可以更改的變數儲存空間。

指標深入分析

指標學習資料 zollty 2009 1.指向普通變數或者某個數或者字串。例如 int j,a 10 int pointer 1,pointer 2 pointer 1 j pointer 2 a 7 2.指標作為函式引數。例如 主函式部分 pointer 1 a pointer 2 b if a ...

深入分析C 引用 指標常量

引言 我選擇寫 c 中的引用是因為我感覺大多數人誤解了引用。而我之所以有這個感受是因為我主持過很多 c 的面試,並且我很少從面試者中得到關於 c 引用的正確答案。那麼 c 中引用到底意味這什麼呢?通常乙個引用讓人想到是變數的別名,而我討厭將 c 中引用定義為變數的別名。這篇文章中,我將盡量解釋清楚,...

深入分析C 引用

關於引用和指標的區別的文章很多很多,但是總是找不到他們的根本區別,偶然在codeproject上看到這篇文章,覺得講的挺好的,所以翻譯了下,希望對大家有幫助。引言 我選擇寫 c 中的引用是因為我感覺大多數人誤解了引用。而我之所以有這個感受是因為我主持過很多 c 的面試,並且我很少從面試者中得到關於 ...