C语言的传值与传址调用

Posted 李洪强

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言的传值与传址调用相关的知识,希望对你有一定的参考价值。

传值调用并不能改变两个变量的值,而传址能。

为什么,因为,传值调用,仅仅是在函数内,调换参数的值。

而地址所指向的值,改变的不仅仅是函数内,函数外也改变。

请看代码:

这里还要注意:通常我们不会返回局部变量的地址.

技术分享
 1 #include <stdio.h>
 2 
 3 void swap_value(int x,int y)
 4 {
 5     int temp;
 6     temp = x;
 7     x = y;
 8     y = temp;   
 9     printf("传值函数内的输出 %d %d \n",x,y);
10 }
11 
12 void swap_address(int *x,int *y)
13 {
14     int temp;
15     temp = *x;
16     *x = *y;
17     *y=temp;   
18     printf("传址函数内的输出 %d %d \n",*x,*y);
19 }
20 
21 int main(int argc, char *argv[])
22 {
23     int x = 10;
24     int y = 0;
25     
26     printf("x y \n");
27     printf("初值 %d %d \n",x,y);
28     //传值子程序调用(交换xy) 
29     swap_value(x,y);
30     printf("传值函数外调用 %d %d \n",x,y);
31 
32     //传地址字程序调用(交换x,y) 
33     swap_address(&x,&y);
34     printf("传址函数外调用 %d %d \n",x,y);
35     return 0;
36 }
技术分享

以上是关于C语言的传值与传址调用的主要内容,如果未能解决你的问题,请参考以下文章

[javaSE] 变量的传值与传址

[Javascript] JavaScript赋值时的传值与传址

javascript . 05 json的组成for...in 遍历对象简单数据类型与复杂数据类型的传值与传址内置对象

C语言中传值与传地址区别

delphi 参数的传址与传值

传值与传址