C語言指標的總結

2021-08-26 15:33:01 字數 1388 閱讀 5608

在電腦科學中,指標(pointer)是程式語言中的乙個物件,利用位址,它的值

直接指向(points to)存在電腦儲存器中另乙個地方的值。由於通過位址能找到

所需的變數單元,可以說,位址指向該變數單元。因此,將位址形象化的稱為「指標」。

意思是通過它能找到以它為位址的記憶體單元。

p是乙個指標,它實際上是乙個變數,而本質上p是乙個位址。在使用p時,真正使用的是p裡存放的位址,這個位址指向了一塊記憶體空間。

我們也可以畫圖來理解:

那麼如何建立乙個指標呢?

int a = 10;//先在記憶體中開闢一塊四位元組的空間

int *p = &a;

//取出變數a的位址,存放在變數p中,p就是乙個指標變數,型別為int*

需要注意的是:在int *p1, p2這種情況下,p1是乙個指標變數,而p2不是。

指標變數也有相應的型別:(type+ *)

char *pc = null; int * pi = null; short * ps = null; ......

char *型別的指標是為了存放char型別變數的位址

int *型別的指標是為了存放int型別變數的位址

…而不管是什麼型別的指標,它所佔空間大小是一樣的,因為它存放的都是位址,只要是位址,在32位平台就是4位元組,在64位平台就是8位元組。

指標的型別不同只決定了解引用時訪問的位元組數不同。例如:

char *的指標解引用只能訪問乙個位元組,而int *的指標解引用就能訪問4個位元組。

看**:

從執行結果可以看出,指標的型別決定了指標+1加幾個位元組。pc和pi列印的都是n的位址,而pc+1是增加1sizeof(char)1個位元組,pi+1是增加1sizeof(int)4個位元組.

c的位址存放在一級指標pa中,pa的位址存放在二級指標p中。

**p先通過 p找到pa,然後對pa進行解引用操作就找到了c.

從執行結果可以看出,p+1增加了1sizeof(char *)4個位元組。

C語言指標總結

2012 03 07 07 22 標籤 c語言 分類 pointer c語言中的精華是指標,這也是c語言中唯一的難點。c是對底層操作非常方便的語言,而底層操作中用到最多的就是指標,以後從事嵌入式開發的朋友們,指標將陪伴我們終身。1.指標型別分析 分析指標,可以從變數名處起,根據運算子優先順序結合,一...

C語言指標總結

c語言中的精華是指標,這也是c語言中唯一的難點。c是對底層操作非常方便的語言,而底層操作中用到最多的就是指標,以後從事嵌入式開發的朋友們,指標將陪伴我們終身。1.指標型別分析 分析指標,可以從變數名處起,根據運算子優先順序結合,一步一步分析.int p 這是乙個普通的整型變數 int p 首先從 p...

C語言指標總結

指標分析 指標的型別 把指標宣告語句裡的指標名字去掉,剩下的部分就是這個指標的型別 指標所指向的型別 把指標宣告語句中的指標名字和名字左邊的指標宣告符 去掉,剩下的就是指標所指向的型別 在指標的算術運算中,指標所指向的型別有很大的作用 指標本身所佔據的記憶體區 用函式sizeof 指標的型別 可以測...