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

C语言的传值与传址调用

时间:2014-12-11 10:10:28      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   http   io   ar   color   os   sp   

原文:C语言的传值与传址调用

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

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

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

请看代码:

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

/* ************************************************************************
* Filename: main.cc
* Description:
* Version: 1.0
* Created: 2011年12月14日 17时06分13秒
* Revision: none
* Compiler: gcc
* Author: YOUR NAME (),
* Company:
* ***********************************************************************
*/

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>

void swap_value(int x,int y)
{
int temp;
temp = x;
x = y;
y = temp;
printf("传值函数内的输出 %d %d \n",x,y);
}

void swap_address(int *x,int *y)
{
int temp;
temp = *x;
*x = *y;
*y=temp;
printf("传址函数内的输出 %d %d \n",*x,*y);
}

int main(int argc, char *argv[])
{
int x = 10;
int y = 0;

printf("x y \n");
printf("初值 %d %d \n",x,y);
//传值子程序调用(交换xy)
swap_value(x,y);
printf("传值函数外调用 %d %d \n",x,y);

//传地址字程序调用(交换x,y)
swap_address(&x,&y);
printf("传址函数外调用 %d %d \n",x,y);
return 0;
}



C语言的传值与传址调用

标签:des   style   blog   http   io   ar   color   os   sp   

原文地址:http://www.cnblogs.com/lonelyxmas/p/4156784.html

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