下列 C++程式執行後的輸出為何? #include <stdio.h> int main(void) { int *p1, *p2; p1 = new int; p2 = new int; *p1 = 1; *p2 = 2; p1 = p2; *p1 = *p1 + 1; printf("%d, %d", *p1, *p2); return 0; }
A1, 2
B2, 2
C2, 3
D3, 3正確答案
答案與詳解
p1=p2 後兩指標都指向原 p2 所配置、值為 2 的記憶體;*p1=*p1+1 將該處改為 3,所以 *p1 與 *p2 都印出 3。
