iT邦幫忙

DAY 12
4

C++ 指標 30日系列 第 12

C++ 指標 30日(12)

指標就在前方不遠處...


今日主題:雙星指標

顧名思意,雙星指標即是要兩把鑰匙才能得到內容。

請看程式碼:

#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
}

鐵人文總整理


上一篇
C++ 指標 30日(11)
下一篇
C++ 指標 30日(17)
系列文
C++ 指標 30日26
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

0
總裁
iT邦好手 1 級 ‧ 2013-09-27 13:52:21

兩顆星耶!!!好炫喔拍手
那時要介紹滿天星呢??...讚

看更多先前的回應...收起先前的回應...
pajace2001 iT邦研究生 1 級 ‧ 2013-09-27 14:11:12 檢舉

iT邦幫忙MVPcdfu提到:
滿天星

滿天星之後會被拔掉嗎?偷笑

總裁 iT邦好手 1 級 ‧ 2013-09-27 14:18:07 檢舉

那就剩指標了....冷

int x = 100;
int *p1 = &x;
int **p2 = &p1;
printf("%d\n", *p1); //100
printf("%d\n", **p2);//100

  1. *p1 不是等於 &x 嗎?為何等於 100 ?
    5.**p2 不是等於 &p1 嗎?為何等於 100 ?

才第12天,我又開始搞不懂了
哭

總裁 iT邦好手 1 級 ‧ 2013-09-27 14:46:06 檢舉

因為%d所以是100
如果是%p就會變成&x了...暈

ted99tw iT邦高手 1 級 ‧ 2013-09-27 15:10:05 檢舉

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)

這問題也困鳥我很久...暈

ted99tw iT邦高手 1 級 ‧ 2013-09-27 15:11:38 檢舉

int *p1 = &x; (意思是int* p1 = &x; 也就是p1才等於&x,不是*p1等於&x)
同理:
int **p2 = &p1;(意思是int** p2 = &p1; 也就是p2才等於&p1,不是**p2等於&p1)

更正~

我要留言

立即登入留言