1)void swap(int a, int b)的参数属于值传递;
2)值传递需要一个中间变量,以你的程序为例:
swap(x,y)
它的实际过程是,先分配两个临时变量,a和b,这两个变量和传入的x、y占用不同的地址空间,程序先将x和y的值复制给a和b:
swap(a = x, b = y),之后在swap中所有的操作都是针对a和b进行的,与x和y无关,所以x和y的值在swap执行后依然保持不变。
3)地址传递也需要一个中间变量,但是这个中间变量保存的是地址,对于C语言你就需要用到指针变量,它可以保存一个普通变量的地址,通过改变这个地址里的内容就可以改变原变量的值。对于你的程序,如果想在调用swap后,x和y的值被改变,你需要定义成下面的样子:
#include <stdio.h>
void swap(int *,int *)//参数里的*号表示指针
void main()
{
int x=10,y=20
printf("(1)a=%d y=%d\n",x,y)
swap(&x,&y)//x和y按地址传入
printf("(4)x=%d y=%d\n",x,y)//按地址传入,x和y的值被swap改变
}
void swap(int *pa, int *pb)//函数形参变成指针
{
int t
printf("(2)a=%d b=%d\n",*pa,*pb)//访问指针的内容需要在指针前加*号
t=*pa
*pa=*pb
*pb=t
printf("(3)a=%d b=%d\n",*pa,*pb)
}
}
3)关于指针的详细内容,由于篇幅有限,请参看C语言资料的相关章节。
1、多文件之间,一般很少有单个参数传递,那个交集太大,不容易移植,各个文件之间最好是越独立越好。
2、数据传递,一般是通过函数接口来实现的。就是用另一个C文件中的某一个功能的时候,可以通过include它的头文件,然后直接调用它的接口函数,这样目的就达到了,这样实现的好处就是易于移植。
定义变量的时候,直接等于一个函数返回值即可。
一、在C语言中,定义变量同时,给变量赋值,称为初始化。
二、初始化形式为
TYPE var_name = INIT_VALUE
其中TYPE为变量类型, var_name为变量名, INIT_VALUE为初始值。
三、要用函数返回值作为初始化,那么只需要把函数调用写在INIT_VALUE区域即可。 示例代码如
#include <stdio.h>#include <time.h>int main(){ int cur_time = time(NULL)//以time函数返回值作为cur_time的初始化值。 printf("当前POSIX标准时间为:%d\n",cur_time)//使用cur_time. return 0}