C語言 指標相關知識小結

2021-07-12 05:01:55 字數 1251 閱讀 1171

1.int *p = null 和 *p = null的區別

int *p = null指的是將乙個指標初始化為null,具體過程為 int *p; p = null。

2.&a與a的區別

inta[5];

int*p = &a;

//??

int*q = a;

//??

這樣的**對嗎?

解釋:&a得到陣列的位址。

a表示陣列首元素的首位址。

&a的a的值一樣,兩個指向的位置是相同的,但是意義不同。

3.指標和陣列的定義與宣告

什麼是宣告和定義:

c語言中的物件必須只有乙個定義,但是它可以有多個extern宣告。

定義是一種特殊的宣告,它建立物件;

申明簡單地說明了在其他地方建立的名字,它允許你使用這個名字。

定義

只能出現在乙個地方

確定物件的型別並分配記憶體,用於建立新的物件。

例如:int my_array[100];

宣告

可以多次出現

描述物件的型別,用於指代其他地方定義的物件(例如在其它檔案)。

例:extern int my_array;

定義陣列,會為其開闢空間,而陣列名作為首元素的位址,定義對於相同的內容,用不同的陣列表示,那麼首元素的位址不相同,因為每次定義陣列都會為其開闢一塊空間;

對於相同的內容,用不同的指標指向,那麼指標變數的儲存的位址是一樣的,因為對於賦值的內容是固定存在的,在記憶體中存在某一固定位置。

對於陣列和指標的定義和宣告,有兩種特殊情況:

a、定義為陣列,宣告為指標

b、定義為指標,宣告為 陣列

如果對於宣告和定義的概念不是很清楚的話,很容易會濫用這兩種情況:

定義為陣列,宣告為指標的話,指標只能訪問四個位元組,32個bit位的大小,所以想訪問陣列的時候就不能正確的訪問到陣列的內容;

定義為指標而宣告為陣列的時候,陣列能夠訪問乙個陣列的大小,而指標只有4個位元組,所以想訪問指標的時候就不能正確的訪問到指標的內容了。

4.指標和陣列的對比

c語言指標實驗心得與小結 C語言指標小結

最近發現自己c語言基礎還是很薄弱,去廣圖借了本 c指標原理揭秘 基於底層實現機制 深入學下指標大家想必都在windows中使用過ping 127.0.0.1 t,其中這些引數怎麼來的呢?看下面 include include int main int argc,char ar 我們平時直接就int ...

C語言知識小結

c語言小結 1.概述 源程式.c 目標程式.obj 可執行目標程式.exe 2.資料型別 運算子 表示式 基本型別 整型,字元型,浮點型 構造型別 陣列,結構,聯合,列舉 指標型別 空型別變數命名的規定 只能由字母,數字,下劃線組成,第乙個字元必須為字母或下劃線 整型資料 int 4個位元組 範圍 ...

C語言指標使用小結

小結下自己對c語言的指標使用的理解。1,呼叫函式實現指標的申請與釋放。在開發中需要重複使用某個指標型別,為此專門寫了一組處理該型別的函式,最基礎就是該指標型別的申請與釋放。常見的錯誤是通過傳入乙個一級指標來實現指標的申請或釋放。測試用的資料型別 typedef struct mystruct mys...