int arr[2] = {10, 20};下列函数的作用是,将数组中的两个数值进行交换,即调用函数后,arr变为{20,10},
voidchange(int* p) { /*……*/ }若要正确实现函数功能,/*……*/为()
int arr[2] = {10, 20};下列函数的作用是,将数组中的两个数值进行交换,即调用函数后,arr变为{20,10},
voidchange(int* p) { /*……*/ }若要正确实现函数功能,/*……*/为()
int temp = p[0];
p[0] = p[1];
p[1] = temp;
p[0] = p[0] ^ p[1]; p[1] = p[1] ^ p[0]; p[0] = p[0] ^ p[1];
int n1 = p[0];
int n2 = p[1];
int temp = n1;
n1 = n2;
n2 = temp;
int temp = *p;
*p = *(p+1);
*(p+1) = temp;
选项 A:
cppCopy Codeint temp = p[0]; p[0] = p[1]; p[1] = temp;
这段代码通过使用数组下标访问来交换数组元素的值。首先,将p所指向的第一个元素的值保存在临时变量temp中。然后,将p所指向的第一个元素的值更新为p所指向的第二个元素的值。最后,将p所指向的第二个元素的值更新为临时变量temp的值,即完成了交换操作。
选项 B:
cppCopy Codep[0] = p[0] ^ p[1]; p[1] = p[1] ^ p[0]; p[0] = p[0] ^ p[1];
这段代码使用异或运算来交换数组元素的值。通过连续进行异或操作,可以实现两个变量的交换而不需要额外的临时变量。具体地,先将p所指向的第一个元素与第二个元素进行异或操作,并将结果赋值给第一个元素,然后再将p所指向的第二个元素与新的第一个元素进行异或操作,并将结果赋值给第二个元素。最后,再将新的第一个元素与新的第二个元素进行异或操作,并将结果赋值给第一个元素,即完成了交换操作。
选项 D:
cppCopy Codeint temp = *p; *p = *(p+1); *(p+1) = temp;
这段代码通过使用指针来交换数组元素的值。首先,将指针p所指向的第一个元素的值保存在临时变量temp中。然后,通过指针算术运算*(p+1)取得指针p所指向的第二个元素的值,并将该值赋值给指针p所指向的第一个元素。最后,将临时变量temp的值赋值给指针p所指向的第二个元素,即完成了交换操作。