訂閱
糾錯(cuò)
加入自媒體

一文弄懂指針類型!

0.問(wèn)題

知乎上回答了一個(gè)粉絲問(wèn)題,

結(jié)果這兄弟又連續(xù)問(wèn)了幾個(gè)問(wèn)題:

好吧,幫人幫到底,送佛送到西!給你講徹底點(diǎn)吧!

1. int va;

這是一個(gè)整型變量,32位CPU的話,占有32個(gè)bite

2. int *va;

這是一個(gè)整型指針變量,用于存放一個(gè)整型變量的地址,

3. int **va;

這是一個(gè)整型的二級(jí)指針,用于存放一個(gè)內(nèi)存的地址,該地址對(duì)應(yīng)的內(nèi)存中存放了另一個(gè)整型變量的地址

比如:

int va=0x12345678; 

int *pva = &va;

int **ppva = &pva;

4. int *va[3]

這是一個(gè)數(shù)組,該數(shù)組里面的成員是整型的指針,分別指向int型的內(nèi)存

5. int (*va)[3]

這是一個(gè)指針,指向一個(gè)int型數(shù)組

注意,該地址類型是int [3]型,他的值是0x40004000,

值為0x40004000的符號(hào)還有:

a   &a[0]

但是他倆的類型和va不一樣,

6. void *va(int)

這是一個(gè)函數(shù)

函數(shù)的參數(shù)是int,

返回值是void *

void (*va)(int)這是一個(gè)指針,指向一個(gè)函數(shù),

該函數(shù)形參是int

返回值是void

舉例

void (*va)(int);
void func(int num)

  printf("一口Linux %d",num);

va = func ;
//調(diào)用
main()

  (*va)(6);

注意:函數(shù)名也是一個(gè)地址

7. int (*va[3])(int)

結(jié)合方式:

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

- END -


聲明: 本文由入駐維科號(hào)的作者撰寫(xiě),觀點(diǎn)僅代表作者本人,不代表OFweek立場(chǎng)。如有侵權(quán)或其他問(wèn)題,請(qǐng)聯(lián)系舉報(bào)。

發(fā)表評(píng)論

0條評(píng)論,0人參與

請(qǐng)輸入評(píng)論內(nèi)容...

請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字

您提交的評(píng)論過(guò)于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無(wú)評(píng)論

暫無(wú)評(píng)論

人工智能 獵頭職位 更多
掃碼關(guān)注公眾號(hào)
OFweek人工智能網(wǎng)
獲取更多精彩內(nèi)容
文章糾錯(cuò)
x
*文字標(biāo)題:
*糾錯(cuò)內(nèi)容:
聯(lián)系郵箱:
*驗(yàn) 證 碼:

粵公網(wǎng)安備 44030502002758號(hào)