指標就在前方不遠處...
今日主題:雙星指標
顧名思意,雙星指標即是要兩把鑰匙才能得到內容。
請看程式碼:
#include <stdio.h>
main()
{
int x = 100;
int *p1 = &x;
int **p2 = &p1;
printf("%p\n", p1); //0x7fffa7502304
printf("%d\n", *p1); //100
printf("%p\n", p2); //0x7fffa75022f8
printf("%p\n", *p2); //0x7fffa7502304
printf("%d\n", **p2);//100
}
哇兩顆星耶!!!好炫喔
那時要介紹滿天星呢??...
iT邦幫忙MVPcdfu提到:
滿天星
滿天星之後會被拔掉嗎?
那就剩指標了....
int x = 100;
int *p1 = &x;
int **p2 = &p1;
printf("%d\n", *p1); //100
printf("%d\n", **p2);//100
才第12天,我又開始搞不懂了
因為%d所以是100
如果是%p就會變成&x了...
antijava提到:
4. *p1 不是等於 &x 嗎?為何等於 100 ?
5.**p2 不是等於 &p1 嗎?為何等於 100 ?
int *p1 = &x; (意思是int* p1 = &x; 也就是p1才等於&x,不是*p1等於&x)
同理:
int **p2 = &p1;(意思是int** p2 = &p1; 也就是p1才等於&p1,不是**p1等於&p1)
這問題也困鳥我很久...
int *p1 = &x; (意思是int* p1 = &x; 也就是p1才等於&x,不是*p1等於&x)
同理:
int **p2 = &p1;(意思是int** p2 = &p1; 也就是p2才等於&p1,不是**p2等於&p1)
更正~