指针指向不能改变吗,为什么是3 5

下列程序的输出结果是。
#include<;stdio.h>;void swap(int *a, int *b){ int *t;t = a;a = b;b = t;}int main(void){ int x = 3, y = 5, *p = &x, *q = &y;swap(p, q);printf("%d#%d\n", *p, *q);return 0;}

img

你把int *看成一个整体int,实际上就相当于你的swap函数的形参是int a,int b,那么在自定义函数中交换并不影响其原本值。如果你想实现交换,应该传的为二级指针

img