求解析
地址传递:原来的值变了 会改变实参的值 举个例子 #include<stdio.h> void temp(int a,int b) { int t; t=a; a=b; b=t; } void main() { int a=5;int b=3; temp(a,b); printf("%d%d",a,b); } 结果 a=5;b=3 并没有因为调用了函数,而变成a=3;b=5;原因就是它是函数值传递,而不是地址传递
#include<stdio.h> void temp(int a,int b) //自定义一个无返回值函数,并且定义形参a和b { int t; t=a; a=b; b=t; }//自定义函数的作用是交换两个形参的值void main()//不要加这个void,主函数没有这种写法,虽然不报错,但是这种写法是不被允许的; { int a=5;int b=3;//定义两个整形变量a和b,并且赋值 temp(a,b);//调用函数temp,并且确定实参是a和b printf("%d%d",a,b);//输出变量a和b的值 }
由于形参是整形变量,所以是按值传递,形参在自定义函数中的所有操作都不会影响到实参的值;
如果形参是指针或者数组的话那就是按地址传递,在自定义函数中对形参的操作就会影响到实参;