C語言指標和指標變數

2021-09-19 07:28:43 字數 1354 閱讀 8243

一、指標

概念:當定義乙個變數時,系統會為這個變數分配記憶體,比如,int a,系統會給變數a分配一塊記憶體,大小為in型的4個位元組,而且每個位元組都會有乙個編號,這個編號就是位址,這個編號是計算機抽象出來用於訪問資料的,實際上為乙個數字。當計算機需要訪問資料時,會先找到它的位址,再來獲取改位址裡的資料。比如,int a=1;當計算機需要printf("%d",a)時,它會先找到a的位址(比如0x000001),然後找到a的值為1。而乙個變數的位址就稱為該變數的指標。指標就是乙個位址,它在計算機中是乙個記憶體單元的編號,乙個十六進製制數。

二、指標變數:c語言有很多種變數,每種變數都會儲存一種資料,而指標變數就是專門來儲存指標的變數,如定義乙個指標變數p,p是乙個指向int型資料的指標,即p可以存int型變數的位址。

int *p;
1.這裡有兩種訪問資料的方式:

在函式傳參時,在函式體裡只改變型參的值,對實參不會造成影響,這裡通過位址的傳遞可以對實參造成影響

*p1和*p2的值雖然都是2和1,但是原理不同。

在swap2函式裡,*p1是通過b的位址找到了b的值,而此時a和b的值並沒有交換所以*p1是2,*p1也是這樣。

在swap1函式裡,p1和p2的值(p1和p2的值是a和b的位址)沒有改變,但在上面已經交換了a和b的值,所以*p1通過a的位址找到a的值為2。

2.指標的大小:指標的大小和指標本身沒有關係,這是由cpu執行模式的定址位數決定的

#include#includeint main()

輸出結果:

可以看出無論是int型指標還是char型指標,大小都是4個位元組。

三、二級指標

1.二級指標就是指標的指標,也就是說,一級指標變數用來存放變數的位址,但一級指標變數也是乙個變數,它也有自己的位址,所以二級指標就是存放一級指標的位址的指標。

c語言指標 指標和指標變數

指標是c語言中乙個重要的概念,也是c語言的重要角色。可以說指標是c的精華所在,學習指標雖然不易,但是只要肯花上時間去反覆的理解和實踐,就一定可以很好的掌握它。一 指標是什麼 指標到底是什麼?我們先舉乙個例子。假設我們在火車站 附近開了一家賓館,這家賓館有三千多間屋子,為了方便管理,我們給每個房間都加...

c語言的指標和指標變數,c語言中的指標和陣列關聯

1 首先什麼是指標,很簡單,就是代表著乙個空間,這個空間指向某個位址,位址裡面又存有我們參加的儲存的值。3 指標變數的定義,取位址運算子和取值運算子 首先是指標變數的定義和賦值 變數型別 用的是指標指向的位址所儲存的值得資料型別 指標變數名 記得必須加 號 乙個位址 一般用取址運算子 在定義和初始化...

C 指標 指標變數

三 和 小結 四 指標變數的運算 指標變數 存放指標的變數,本質上是乙個整數。指標所指向的值,可以是任何型別資料,如陣列 字串 函式或普通變數 指標變數。定義指標變數與定義普通變數非常類似,不過要在變數名前面加星號 datatype name 或者 datatype name value 表示這是乙...