码迷,mamicode.com
首页 > 编程语言 > 详细

C语言的传值与传址调用

时间:2015-10-19 20:41:56      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:

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

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

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

请看代码:

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

 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语言的传值与传址调用

标签:

原文地址:http://www.cnblogs.com/goodboy-heyang/p/4892835.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!