您好,登錄后才能下訂單哦!
如何理解C語言中的指針類型,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
知乎上回答了一個粉絲問題,
結果這兄弟又連續問了幾個問題:
好吧,幫人幫到底,送佛送到西!給你講徹底點吧!
這是一個整型變量,32位CPU的話,占有32個bite
這是一個整型指針變量,用于存放一個整型變量的地址,
這是一個整型的二級指針,用于存放一個內存的地址,該地址對應的內存中存放了另一個整型變量的地址
比如:
int va=0x12345678; int *pva = &va; int **ppva = &pva;
這是一個數組,該數組里面的成員是整型的指針,分別指向int型的內存
這是一個指針,指向一個int型數組
注意,該地址類型是int [3]型,他的值是0x40004000,
值為0x40004000的符號還有:
a &a[0]
但是他倆的類型和va不一樣,
這是一個函數
函數的參數是int,
返回值是void *
void (*va)(int) 這是一個指針,指向一個函數,
該函數形參是int
返回值是void
舉例
void (*va)(int); void func(int num) { printf("一口Linux %d\n",num); } va = func ; //調用 main() { (*va)(6); }
注意:函數名也是一個地址
結合方式:
va先和[3]結合,說明va是一個數組
va[3] 外面*結合,所以數組元素是一個指針
假定(*va[3])是X,外面是 int (X)(int),所以指針是指向函數的
函數的形參是是int型,返回值是int型
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。