2014-09-30 36 views
2
int a = 5; 
int **b = new int*; 
*b = &a; 
**b = a + 6; 
int *c = new int(**b); 

我知道b是一個指針,它指向一個指針,它將在堆上的運行時分配。 new int返回一個指針,但什麼是new int(**b)?c指向哪裏? 這個複雜的聲明讓我瘋狂。C++中的動態內存

回答

3

它等同於:

int *c = new int(11); 

c點被初始化爲11,這是**b值的值。

+0

只是想輸入相同的數字:D – 2014-09-30 17:39:42

+1

除了在這種情況下是11,而不是42. – 2014-09-30 17:40:08

+1

是的,我說*和*類似,不等於*,在例子中使用'42'。 – 2014-09-30 17:41:05