指標
在學習指標之前,需要先了解 記憶體
記憶體?
記憶體是電腦上十分十分重要的存盤器,計算機中所有的程式的運行都是在記憶體中進行的
為了能夠有效地使用記憶體,我們也將記憶體進行了劃分,其中每個記憶體單元的大小是一個位元組,并且為了能夠有效的訪問到記憶體的每一個單元,就進行了編號,這些編號被稱為記憶體單元的地址
每一個變數都有地址,取出變數地址則需要使用 &
int main()
{
int num =10;
#
printf("%p\n", &num);// %p-- 以地址的形式列印
return 0;
}
現在,指標可以這么來理解:
到飯點了,爸媽不在家,自己又餓的慌,這時候我拿起手機,看著自己走樣的身材,“極不情愿”地點了個麥辣巨無霸套餐(程式),輸入我的個人資訊(定義變數) 后,商家將我的麥辣巨無霸套餐(程式) 做好,等待外賣小哥來送,
此時,外賣小哥通過手機APP(&) 接到我的訂單,火速從店里面把我的麥辣巨無霸套餐(程式) 給我送過來
好不容易,外賣小哥到了我所居住的小區(記憶體),看著我填寫的門牌號(地址) 輕松地送到了我家(單元)
然后外賣小哥看著我家的環境不錯, 問我多少錢買的,我看著外賣小哥一臉大哥樣,我直接亮出了我手臂上的假紋身,說:“一個指節(位元組)”,
從此,我再也沒見過那個小哥,倒是經常可以聽見警笛聲,
(故事純屬虛構,請勿當真)
那么地址該如何存盤呢?
需要定義 指標變數
int num = 10;
int *p;
p = #
eg:
#include<stdio.h>
int main()
{
int num = 10;
int *p = #
*p = 20;
printf("%d %d\n", num, *p);
return 0;
}
此時,num就是我家, p 就是我家的具體地址,*p就是代表的我家(其中 * 被稱為 解參考運算子 ,有關運算子的詳細講解請移步到另一篇文章C語言學習筆記----2)
那么其他型別的指標該如何定義呢?
可以類比整形指標,來得到其他型別的指標
#include<stdio.h>
int main()
{
char ch1 = 'a';
char *p = &ch1;
return 0;
}
所有的變數都有大小,那指標變數的大小是多少呢?
在32位的機器里,指標大小為4個位元組
而在64位的機器里,指標大小則為8個位元組
原因是指標是用來取地址的,指標需要多大的空間,取決于地址的存盤需要多大空間
32位的機器每個地址是32bit,也就是4個位元組
64位的機器每個地址是64bit,也就是8個位元組
32位機器

64位機器

因為機器只有通電和不通電兩種情況,也就是只有0和1,這也就是為什么計算機只能識別存盤二進制的原因,而每一根線都有通電和不通電的情況,所以32位的機器具有 232 個位元組而64位機器則是 264 個位元組
單位的換算

這是指標的另一種表達方式 ->

以上便是指標的簡單介紹,如有錯誤,請大佬斧正,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/277663.html
標籤:其他
上一篇:計算機考研408復習復盤
