第二个传递的是地址,数组名表示的就是数组的首地址,所以形参 char a[] 其实就是 char *a
将实参的地址赋值给 a了,所以形参改变了,实参也改变了。
这就相当于 int aint *p =&a 如果 *p发生了变化,a的值也跟着发生变化。
对变量
a,b进行交换可借助中间变量进行,如下:
int a,b,temp
a = 1
b = 2
temp = a
a = b
b = temp
经过上述操作,就可以将a,b的进行交换,此时a为2,b为1。
#include<stdio.h>int main()
{ int a,b,t
scanf("%d%d",&a,&b)
printf ("a=%d b=%d\n",a,b)
t=a
a=b
b=t
printf ("a=%d b=%d\n",a,b)
return 0
}