snakeser 2016-12-14 13:41 采纳率: 50%
浏览 10214
已采纳

"int" 类型的值不能用于初始化 "int *" 类型的实体

求dalao解答啊,C++作业,搞不懂ORZ
代码如下
#include
#include
using namespace std;
int main()
{
void swap1(int *p1, int *p2);
int a = 25; int b = 24;
int *ss1 = a; int ss2 = b;
swap1(&a,&b);
cout << ss1 << setw(8) << ss2 << endl;

}
void swap1(int *p1, int *p2)
{
int temp=1;
temp = *p1;
*p1 = *p2;
*p2 = temp;
}

void swap2(int *p1, int *p2)
{
int *temp;
*temp = *p1;
*p1 = *p2;
*p2 = *temp;
}

void swap3(int x, int y)
{
int temp=1;
temp = x;
x = y;
y = temp;
}

void swap4(int *p1, int *p2)
{
int *p;
p = p1;
p1 = p2;
p2 = p;
}

  • 写回答

4条回答 默认 最新

  • 尚书左仆射 2016-12-14 14:05
    关注

    这个错误源于该语句: int *ss1 = a;
    你要是想给指针变量赋值应该这样:int *ss1 = &a;
    你要是想为指针指向的内存赋值,请先让它指向一个内存,例如:int *ss1 = new int(); *ss1 = a;

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?