2017-07-30 71 views
1

在下面的代碼段混淆用C的typedef

int* p1, p2; 

p1是整數指針變量和p2是整數varible.it的確定。

但是,在下面的代碼片段

typedef int* ptr; 
ptr p1, p2; 

爲什麼都p1p2整數指針變量?

+0

當明確寫入時,指針符號僅適用於緊跟在它後面的變量標識符。當「打包」到一個typedef中時,你可以把它看作是對每個用這種類型聲明的變量「擴展」的 – meowgoesthedog

回答

0

是的。爲什麼?因爲無論是類型ptr這是一個別名int *

而且從你的問題的第一個例子: int *p1, p2;

int *p1; 
int p2; 

等效的,這就是爲什麼P1是指向int和p2的指針只是int