C++
void exchange(int *p1, int *p2);int main()
{
int a=10 , b=30;
void exchange(&a,&b);
cout << a<< ' '<< b;
return 0;
}
void exchange(int *p1, int *p2)
{
int temp = 0;
temp = *p1;
*p2 = *p1;
*p1 = temp;
}这个编译器说这里不允许使用不完整的类型,这里什么错了?谢谢 这个错误是因为在主函数中调用 exchange 函数的方式不正确。在C++中,函数调用不需要使用 void 关键字,而且函数名前不需要使用 & 符号。所以正确的调用方式应该是 exchange(&a, &b); 。
以下是修改后的代码:
#include <iostream>
using namespace std;
void exchange(int *p1, int *p2);
int main()
{
int a = 10, b = 30;
exchange(&a, &b);
cout << a << ' ' << b;
return 0;
}
void exchange(int *p1, int *p2)
{
int temp = 0;
temp = *p1;
*p1 = *p2;
*p2 = temp;
}
这样修改后,程序就能正确地交换变量 a 和 b 的值了。 在你的代码中,有一个问题在于 void exchange(&a,&b); 这一行代码的写法是错误的。应该改为 exchange(&a, &b);。另外,在 exchange 函数内部交换变量的时候,写成了 *p2 = *p1; *p1 = temp;,而实际上应该是 *p1 = *p2; *p2 = temp;。
下面是修改后的代码:
#include <iostream>
using namespace std;
void exchange(int *p1, int *p2);
int main()
{
int a=10, b=30;
exchange(&a, &b);
cout << a << ' ' << b;
return 0;
}
void exchange(int *p1, int *p2)
{
int temp = *p1;
*p1 = *p2;
*p2 = temp;
}
运行结果为:
30 10
希望这个回答能够帮助到你!如果你还有其他问题,请随时提问。
球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:}
页:
[1]