void swap2(int *,int *);有什么用

#include <stdio.h>
void swap2(int *,int *);
void bubble(int a[],int n);
int main(void)
{
    int n,a[8];
    int i;
    
    printf("enter n:");
    scanf("%d",&n);
    printf("a[%d]:",n);
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);
    bubble(a,n);
    printf("after sorted,a[%d]=",n);
    for(i=0;i<n;i++)
        printf("%3d",a[i]);
        
    return 0;
}

void bubble(int a[],int n)
{
    int i,j,t;
    for(i=1;i<n;i++)
        for(j=0;j<n-i;j++)
            if(a[j]>a[j+1]){
                t = a[j];
                a[j]=a[j+1];
                a[j+1]=t;
            }
}

这个程序的第二行void swap2(int *,int *);是什么意思,为什么我感觉后面都没用到

swap()函数的意思是交换两个数,一般定义如下

void swap(int* a, int *b)
{
    int t = *a;
    *a = *b;
    *b = t;
}

这样你就可以把下面代码

t = a[j];
a[j]=a[j+1];
a[j+1]=t;

替换为

swap(&a[j], &a[j+1]);

的确没用到,删了吧

冒泡排序中交换函数的函数声明。首先void 是个空类型,不需要传会参数或者在函数内就能输出结果就用void类型。swap2为函数名。int* 为函数的两个参数为指针类型,相当于数组类型,这里swap函数是多余的,原本应该是bubble函数 if 语句里面那部分,原理是一样的,可自行替换if语句部分,你删了一样运行,这里swap写出来根本没用,望采纳捏