c語言指標學習筆記

2021-04-03 00:04:16 字數 766 閱讀 5566

example 1;

int a,b,*p,*q;

*p=a;

p=&a;

p=q;

b=*p;

p=a;錯誤,因為p實際上是乙個位址,而a是乙個整型值

p=*q;錯誤,因為這句話的意思是:將位址q指向的單元的值賦給位址p。而實際上p是乙個位址,是不能存值得

*p=&a;錯誤

注意,如果這樣定義了*p,那麼*p表示位址(指標)p指向的單元的值,而p表示乙個位址,指標p本身只能存放它所指向的變數的位址,而不能存放變數值,*p也不是說能存放變數的值,它實際上表示乙個指向變數的值或者說儲存區域,具體意義比如b=*p表示運算子*訪問以p為位址的儲存區域,但是如果是這樣*p=&a,則是錯誤的,因為*p它指向的應該是乙個儲存區域而不是乙個位址。

example 2;

char s="china";char *p;p=s;

這個裡面,*p與s[0]相等,為什麼呢?因為指標p是指向s[0]的,那麼*p就可以說是引用的s[0]的內容。

有一點我們要謹記,陣列名所代表的就是陣列最開始的乙個元素的 位址。所以,在這裡,可以有p=s;而上例中的p=a則是錯誤的。

example 3;

有以下程式:

/* strlen函式:返回字串s的長度 */

int strlen(char *s)

在這個程式裡面,有一句char *p=s,這句是沒有錯的,這句等價於char *p;p=s;

此文是本人在學習c指標時的一點筆記。若有錯誤之處,還望各路人甲乙丙丁幫忙指出。

C 語言指標學習筆記

前敘 原先對c語言的學習,對指標有恐懼感.當c語言學到一定的程度的時候,再學習指標有種水到渠成的感覺。對指標變數的定義包括三個內容 1 指標型別說明,即定義變數為乙個指標變數 2 指標變數名 3 變數值 指標 所指向的變數的資料型別 一般是這樣的 型別說明符 變數名 int p 這個小星星號 表示這...

C語言指標學習筆記

假設我們定義乙個指標p。那麼會經常使用到三個符號 1,p 2,p 3,p 我們知道,p是乙個指標變數的名字,表示此指標變數指向的記憶體位址,如果使用 p來輸出的話,它將是乙個16進製制數。而 p表示此指標指向的記憶體位址中存放的內容,一般是乙個和指標型別一致的變數或者常量。而我們知道,是取位址運算子...

c語言指標學習筆記

1.運算子 位址的大小是否與int相同取決於編譯器。32位是4位元組,64位是8位元組。因此位址的輸出不能是 x,應該是 p。2.指標int i int p i int p,q int p,q 3.指標作函參 訪問這個位址上的變數需要使用到單目運算子 接著可以通過指標使用和改寫這個變數。int i ...