一文弄懂指針類型!
0.問題
知乎上回答了一個粉絲問題,

結果這兄弟又連續問了幾個問題:

好吧,幫人幫到底,送佛送到西!給你講徹底點吧!
1. int va;
這是一個整型變量,32位CPU的話,占有32個bite
2. int *va;
這是一個整型指針變量,用于存放一個整型變量的地址,
3. int **va;
這是一個整型的二級指針,用于存放一個內存的地址,該地址對應的內存中存放了另一個整型變量的地址
比如:
int va=0x12345678;
int *pva = &va;
int **ppva = &pva;

4. int *va[3]
這是一個數組,該數組里面的成員是整型的指針,分別指向int型的內存

5. int (*va)[3]
這是一個指針,指向一個int型數組
注意,該地址類型是int [3]型,他的值是0x40004000,
值為0x40004000的符號還有:
a &a[0]
但是他倆的類型和va不一樣,

6. void *va(int)
這是一個函數
函數的參數是int,
返回值是void *
void (*va)(int)這是一個指針,指向一個函數,
該函數形參是int
返回值是void
舉例
void (*va)(int);
void func(int num)
{
printf("一口Linux %d",num);
}
va = func ;
//調用
main()
{
(*va)(6);
}
注意:函數名也是一個地址
7. int (*va[3])(int)
結合方式:

va先和[3]結合,說明va是一個數組va[3] 外面*結合,所以數組元素是一個指針假定(*va[3])是X,外面是 int (X)(int),所以指針是指向函數的函數的形參是是int型,返回值是int型

- END -
請輸入評論內容...
請輸入評論/評論長度6~500個字
最新活動更多
- 1 AI狂歡遇上油價破百,全球股市還能漲多久? | 產聯看全球
- 2 OpenAI深夜王炸!ChatGPT Images 2.0實測:中文穩、細節炸,設計師慌了
- 3 6000億美元估值錨定:字節跳動的“去單一化”突圍與估值重構
- 4 Tesla AI5芯片最新進展總結
- 5 連夜測了一波DeepSeek-V4,我發現它可能只剩“審美”這個短板了
- 6 熱點丨AI“瑜亮之爭”:既生OpenClaw,何生Hermes?
- 7 AI界的殺豬盤:9秒刪庫跑路,全員被封號,還繼續扣錢!
- 8 2026,人形機器人只贏了面子
- 9 DeepSeek降價90%:價格屠夫不是身份,是戰略
- 10 AI Infra產業鏈卡在哪里了?


分享













