swap(int *p1, int *p2) {
int *p;
*p = *p1;
*p1 = *p2;
*p2 = *p;
}
選項:A. 交換值 B. 正確但無法改變值 C. 交換地址 D. 可能造成系統故障,因為使用了空指針
int *p; 定義了一個未初始化的野指針,其值隨機(可能為 0、垃圾地址)。*p = *p1; 嘗試通過野指針寫入內存,觸發未定義行為:若 p 為 0 導致空指針解引用崩潰;若為隨機地址破壞其他數據。// 交換指針指向的值(需傳入有效地址)
void swap(int *p1, int *p2) {
int temp = *p1;
*p1 = *p2;
*p2 = temp;
}
// 交換指針本身(C++ 引用或 C 二級指針)
void swap_ptr(int *&p1, int *&p2) { // C++
int *temp = p1;
p1 = p2;
p2 = temp;
}
int **。