C語言學習,從入門到進階系列(四)
指標
指標可以說是整個學習里面最難的東西,我在這邊不能全面描述,同樣,我會在之后不斷地學習之后給大家更好的博客,
在這里我們先了解,指標是什么,我們可以這么想象,我們平時網上訂單的時候,快遞小哥是怎么找到我們的,是不是靠地址,同樣,指標就是一個變數的地址,我們在寫程式的時候,我們定義的一個個變數,都是放到記憶體的,當我們要用的時候,我們就可以用指標來尋找,那我們是怎么來定義指標的呢?
#include<stdio.h>
int main()
{
int a = 10;
int* p = &a;
printf("%d\n", a); //輸出效果 10
printf("%d", *p); //輸出效果 10
return 0;
}
這里面的p就起到了指標的效果,我們里面出現了很多陌生的運算子號,
&這個是取地址符號,(用來獲取地址)
*這個是解參考符號,(用來獲取地址所指向的內容)
那我們在定義指標變數的時候,我們應該怎么樣呢?
是不是所有指標都用int呢
其實不是的,我們在定義指標變數的時候,首先應該先確認,我們要獲取變數地址的型別,我們要保證指標變數的型別要和原變數型別保持一致,
可以說地址就是指標,指標就是地址,
當然我們在用指標的時候,不會像這樣使用,這樣就太大材小用了,
同樣,我們可以利用指標變數來改變原來的值
#include<stdio.h>
int main()
{
int a = 10;
int* p = &a;
*p = 20;
printf("%d\n", a); //輸出結果20
printf("%d", *p); //輸出結果20
return 0;
}
這樣就是最普通的一個改變,通過*的解參考來改變原來的值,
那我們在之前學過,各種變數都有大小,
那這個指標變數有大小嗎?
當然是有的啦,
那是多大呢?
#include<stdio.h>
int main()
{
printf("%d", sizeof(char*)); //輸出結果 4
printf("%d", sizeof(short*)); //輸出結果 4
printf("%d", sizeof(int*)); //輸出結果 4
printf("%d", sizeof(long*)); //輸出結果 4
printf("%d", sizeof(long long*)); //輸出結果 4
printf("%d", sizeof(float*)); //輸出結果 4
printf("%d", sizeof(double*)); //輸出結果 4
return 0;
}
我們可以很顯然的看到指標變數的大小都是4個位元組,
當然在別的地方會有8個位元組
這是為什么呢?
因為機器的不同,有的是32位有的是64位,
這章就到這邊結束了,下一篇我們介紹回圈,我們下節再見,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/286807.html
標籤:其他
