C语言指针调试问题求解

书上指针部分的例题:
#include

int main(){
void swap(int *change_a,int *change_b);
int a,b;
int *change_a,*change_b;
printf("please enter two numbers:");
scanf("%d %d",&a,&b);
change_a = &a;
change_b = &b;
printf("%d %d",change_a,change_b);

  return 0;

}

void swap(int *change_a,int change_b){
int temp;
temp = *change_a;
*change_a = *change_b;
*change_b = temp;
}

运行时显示:
error:invalid type arguement of unary '*' (have 'int')

不理解,我不都定义成int型了吗?

你在swap函数中的change_b没有定义成指针。改成指针应该就能变成你想要的结果了

你在swap函数中的change_b没有定义成指针。改成指针应该就能变成你想要的结果了

#include"stdio.h"
void swap(int *change_a,int change_b);
int main(){
int a,b;
int *change_a,change_b;
printf("please enter two numbers:");
scanf("%d %d",&a,&b);
change_a = &a;
change_b = b;
printf("%d %d", *change_a,change_b);

return 0;

}

void swap(int *change_a,int change_b){
int temp;
temp = *change_a;
*change_a = change_b;
change_b = temp;
}

这样应该对了

你注意看下,你的temp,不是指针类型啊