C错误-应为声明说明符或'';在'之前*';代币
我试着让我的头脑围绕指针,我试着写一个程序,用指针交换两个数字。然而,我得到了标题中所述的错误。这是我的密码:C错误-应为声明说明符或'';在'之前*';代币,c,pointers,swap,C,Pointers,Swap,我试着让我的头脑围绕指针,我试着写一个程序,用指针交换两个数字。然而,我得到了标题中所述的错误。这是我的密码: //This program swaps two numbers using pointers #include <stdio.h> void swap(*val1, *val2); int main() { int num1, num2; int *pNum1, *pNum2; printf("Enter number 1:\n"
//This program swaps two numbers using pointers
#include <stdio.h>
void swap(*val1, *val2);
int main() {
int num1, num2;
int *pNum1, *pNum2;
printf("Enter number 1:\n");
scanf("%d", &num1);
printf("Enter number 2:\n");
scanf("%d", &num2);
pNum1 = &num1;
pNum2 = &num2;
printf("Numbers not swapped: %d, %d\n", *pNum1, *pNum2);
swap(pNum1, pNum2);
return 0;
}
void swap(*val1, *val2) {
int temp;
temp = val1;
val1 = val2;
val2 = temp;
printf("Numbers swapped: %d, %d\n", *val1, *val2);
return;
}
//此程序使用指针交换两个数字
#包括
无效掉期(*val1,*val2);
int main(){
int num1,num2;
int*pNum1,*pNum2;
printf(“输入数字1:\n”);
scanf(“%d”&num1);
printf(“输入数字2:\n”);
scanf(“%d”&num2);
pNum1=&num1;
pNum2=&num2;
printf(“未交换的数字:%d,%d\n”,*pNum1,*pNum2);
交换(pNum1,pNum2);
返回0;
}
无效掉期(*val1,*val2){
内部温度;
温度=1;
val1=val2;
val2=温度;
printf(“交换的数字:%d,%d\n”、*val1、*val2);
返回;
}
应该是
void swap(int *val1, int *val2);
然后你应该通过
swap(&num1,&num2);
如果你传递一个指针,那么你就是在传递它的副本。你需要传递地址。在调用函数中不需要指针,您可以直接传递变量的地址
void swap(int *p,int *q)
{
int t = *p;
*p = *q;
*q = t;
}
完全不知道我是怎么错过的。谢谢你的快速回复!
void swap(int *p,int *q)
{
int t = *p;
*p = *q;
*q = t;
}