博航社区

 找回密码
 立即注册博航社区

用新浪微博连接

一步搞定

QQ登录

只需一步,快速开始

查看: 8759|回复: 0
打印 上一主题 下一主题

介绍:C语言的传值与传址调用 [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2013-3-5 19:52:27 |只看该作者 |倒序浏览
分享到:

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

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

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

  请看代码:

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

  /* ************************************************************************

  *       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;

  }


分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
分享分享0 收藏收藏0 转发到微博
http://emb.sunplusedu.com/

使用道具 举报

Archiver|手机版|谷歌地图|百度地图|官网地图|淘宝链接|博航智能圈 - ARM嵌入式AI物联网IOT机器人

GMT+8, 2024-5-20 09:14 , Processed in 0.028434 second(s), 7 queries , Gzip On, Memcache On.

club.broadon.net

© 2007-2012 BroadOn

回顶部