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;

}