有人可以請解釋一下這個代碼使用*(指針+ I)與指針[I]
// Option 1
int **p = new Point*[2];
p[1] = new Point;
p[1]->x = p[1]->x = 1;
// Option 2
int **p = new Point*[2];
*(p+1) = new Point;
(*(p+1))->x = (*(p+1))->x = 1;
是不是這兩個選項一樣嗎?爲什麼當我使用選項2創建變量時,我不能使用選項1(我得到隨機數字(地址數字?))寫入它的值?有什麼區別嗎?
是的,有區別;第二個例子從不初始化y。 – 2012-04-24 18:45:53
那麼,有一件事你不會在選項2中指定任何東西 - 你會 - > x兩次。 – 2012-04-24 18:46:56
哦,我看到你現在編輯你的例子,這樣兩個選項都有相同的錯誤。 – 2012-04-24 19:20:16