C學習筆記之一 指標

2021-08-20 05:35:54 字數 2437 閱讀 7316

指標變數:指標變數也是乙個變數,在指標中存放的內容是一塊記憶體空間的位址。就是說,指標就是

記憶體位址:計算機記憶體的最小單位是byte,每乙個byte都有乙個唯一的編號,這個編號就是記憶體空間的位址,通常叫作記憶體位址。這個編號在32位作業系統下是乙個32位的整數,在64位作業系統下是乙個64位的整數。

例如在win64系統下的vs2015中執行一下程式:    

#includeint main()

執行結果是:

看下面的例子:

#includeint main()

執行結果是:

這裡要注意一下,指標變數定義的時候,有可能讀者會出現這樣的疑惑:

int a=10;

int *p;

*p=&a;

int a=10;

int *p;

p=&a;

也可以簡化寫成:

int a=10;

int*p=&a;

以下四點需要注意下:

int *p=&a;

int p=&a;

int a;

int *p;

p=&a;//指標變數的值一般不能直接賦值乙個整數,而是通過取變數位址的形式賦值

p1=10;//不能這樣為指標賦值

3)*p的意義:指標變數指向的記憶體空間的內容。示例程式:

#includeint main()

執行結果:

4)通過指標間接修改指標變數指向變數的值

int a=10;

int *p=&a;

*p=20;

printf("a的值是:%d\n",a);

執行結果是:

指向常量的指標與指標常量的定義:

const int *p;//定義乙個指向常量的指標

int *const p;//定義乙個常量指標,一旦初始化,就不能修改其指向

指向常量的指標只能指向乙個常量,例如:

int a =10;

const int *p = &a;//p這個指標只能指向乙個常量

*p = 20;//不能通過*p的方法修改乙個const指標,此時*p是唯讀的

可以這樣用:

int a =10;

int b =20;

const int *p = &a;//p這個指標只能指向乙個常量

p = &b;//此時*p列印出來是20

常量指標一旦被定義,不能修改其指向,例如

int a =10;

int b =20;

int *const p = &a;

p = &b;//錯誤,一旦定義了常量指標,就不能修改指標的指向,從一而終,相當於古代的好女人

先看示例程式:

#includeint main()

執行結果:

可以看出,陣列中,buf就是取陣列的首位址,與&buf[0]等效。

陣列的指標的示例程式:計算字串長度

#includeint main()

printf("s1長度:%d\n", length);

return 0;

}

執行結果:

陣列的指標的示例程式:實現兩個字串相加

#includeint main()

char *p2 = s2;

while (*p2)

printf("s1長度:%d\n", length);

printf("s1=%s\n", s1);

return 0;

}

執行結果:

int a=10;

int *p=&a;

int **pp=&p;//定義了乙個二級指標,指向了乙個一級指標的位址

C 學習一 指標

摘要自 c 指標 菜鳥教程 runoob.com 指標也就是記憶體位址,指標變數是用來存放記憶體位址的變數。所有實際資料型別不管是整型 浮點型 字元型,還是其他的資料型別,對應指標的值的型別都是一樣的,都是乙個代表記憶體位址的長的十六進製制數。唯一不同的是指標所指向的變數或常量的資料型別不同。一 c...

指標部分釋疑之一 指標的實質

指標部分釋疑 在學習c c 過程中,可能大多數學習者對指標都會產生厭煩乃至牴觸情緒。的確,對於初學者來講,指標是不好理解,也不好用,好多學習者喜歡採用不用指標的方式來解決問題,即 能不用指標就不用指標 甚至把指標當成了人人喊打的 goto 來看待 而其實,指標也是冤枉的,大家看到的都是指標的缺點,卻...

C語言指標學習 一 指標是什麼

僅供自己學習使用,謝謝!指標的定義 位址 記憶體單元的編號 從0開始的非付整數 在32位機器上,記憶體最大為4g 2 32個位元組 指標 指標就是位址,位址就是指標 指標變數就是存放記憶體單元編號的變數,或者說指標變數就是存放位址的變數 指標和指標變數是兩個不同的概念 需要注意的是,我們平時在敘述的...