龙空技术网

C语言中函数单向传值和双向传值

为明天开心 299

前言:

目前看官们对“value在c语言是什么意思”大体比较看重,朋友们都需要剖析一些“value在c语言是什么意思”的相关文章。那么小编同时在网上搜集了一些有关“value在c语言是什么意思””的相关内容,希望朋友们能喜欢,各位老铁们一起来了解一下吧!

在C语言编程中,调用函数时,牵涉到传参数的问题,分为单向传传值和双向传值的问题,在C语言的函数中,参数共两种,也就是形参和实参,其中形参就是在编写函数时,形式上的参数,是一个假想值。实参则是调用函数时传递的实际上的值,是一个具体的值。

单向传值指的是在函数调用时,只把实际传过去的表达中的值复制传过去,因此,在程序运行时,不会改变实参的值。如:

#include <stdio.h>

int fun(int a,int b)

{int c;

a++;b++;// 在函数中改变了变量a,b的值,但在函数定义时,a,b 均为一个普通变量,待函

// 数运行完后不会改变变量的值。

c=a+b;

return c;

}

main()

{

int a=2,b=3;

int c=fun(a,b);//调用时则把a,b的值复制传过来,相当于c=fun(2,3);因此,在函数运行

//完后,不会改变a,b的结果。

printf("a=%d,b=%d,c=%d",a,b,c);

}

运行结果为:

a=2,b=3,c=7

--------------------------------

Process exited after 0.01003 seconds with return value 11

请按任意键继续. . .

而又向传值则指,在函数定义时,形参中有指针类型数据,故在调用时,实参则是一个具体的地址值 ,因此,只要函数中改变了地址值中的值 ,则待函数运行完后,相应的地址值中的值会做相应的改变。

#include <stdio.h>

int fun(int *a,int b)//定义时形参为指针类型。

{int c;

(*a)++;b++;

c=*a+b;

return c;

}

main()

{

int a=2,b=3;

int c=fun(&a,b);//此时传的是a的址址,而b传的是一个具体的值

printf("a=%d,b=%d,c=%d",a,b,c);

}

运行结果如下:

a=3,b=3,c=7

--------------------------------

Process exited after 0.006931 seconds with return value 11

请按任意键继续. . .

因此在编写函数时,要注意是传值还是传地址,一定要区别对待。

标签: #value在c语言是什么意思 #c语言一个程序里调用另外一个程序的函数调用 #c语言中函数的形参 #c语言中函数形参和实参的传递方式是单向还是双向