2020年3月18日 星期三

[C] 指標

&:取址(reference operator), address of ... (eq.&a:address of a)
*:取值(dereference operator),value of ... (eq.*b:value of b)


各種用法解說:
char *ptr;  //char表示point指向變數的類型,唸做:ptr is a pointer to char

char p[5]; // p is a 5-element array of char
char *p[5]; // p is a 5-element array of pointer to char 
char (*p)[5]; // p is a pointer to a 5-element array of char

另一種解釋
int *ptr[10];
This is an array of 10 int* pointers

int (*ptr)[10];
This is a pointer to an array of 10 int


typedef void (*func)(char);
func是個指標,指向某個函式,而這個涵式有一個資料型態為char的引述,回傳值為void


示意圖:



*ptr1依地址取值,所以依照ptr1內的地址0x00A1取值為20
**ptr2依地址取值,所以依照ptr2內的地址0x00A2取值為0x00A1,再依照0x00A1取值為20


指標與雙重指標差別




沒有留言:

張貼留言