C语言:传值,传地址
形参:形式参数
实参:实际参数
传值:
把实参的值复制给形参,
修改函数内的形参,不会影响实参。 
传地址:
指针传值,形参为指向实参地址的指针
当对形参的指向操作时,相当于对实参本身进行的操作
#include <iostream>
// 交换位置
// “值调用”
void swap_value(int x, int y) {
int temp = x;
x = y;
y = temp; }
// “引用调用1”,形参:传的是地址,取得是值(*)
void swap_p(int *x, int *y) {
int temp = *x;
*x = *y;
*y = temp;
}
// “引用调用2”,形参:传的是值,接的是地址
void swap_addr(int &a, int &b) {
int temp = a;
a = b;
b = temp;
}
main() {
int x = ;
int y = ;
printf("x = %d, y = %d\n", x, y); swap_value(x, y);
printf("传值调用后:x = %d, y = %d\n", x, y); swap_p(&x, &y);
printf("传地址调用后:x = %d, y = %d\n", x, y); swap_addr(x, y);
printf("传值接地址调用后:x = %d, y = %d\n", x, y);
}
x = 0, y = 1
传值调用后:x = 0, y = 1
传地址调用后:x = 1, y = 0
传值接地址调用后:x = 0, y = 1
C语言:传值,传地址的更多相关文章
- PHP 传值操作和传地址操作
PHP中有两种赋值操作 一种是传值操作 example: $a = 1; $b = $b; 这个就是传值 传地址是: example2: $a = 1; $b = &$a; 这两者有什么区别呢 ...
- JAVA的String的传值和传地址问题
关于Java的String类型,可能你会碰到这种情况,将String类型的变量传到一个函数,在这个函数中修改变量的值,但是,实参的值并没有发生改变. Java中String的传值/传地址问题: 例子引 ...
- c语言 参数传值和传地址
static void TestCharP(char **p) { char *q = "ssssss"; *p=q; } static void TestCharP1(char ...
- 出于性能考虑,C语言自动地以传地址的方式将数组传递给被调函数 const 编译错误 最小权限原则
#include <stdio.h> int main(void) { char array[5]; printf("array=%p,&array[0]=%p,& ...
- PHP 传值和传引用、传地址的区别
传值, 是把实参的值赋值给行参 那么对行参的修改,不会影响实参的值 传地址 是传值的一种特殊方式,只是他传递的是地址,不是普通的如int 那么传地址以后,实参和行参都指向同一个对象 ...
- python中传值和传地址问题
在python中,还没有对这个知识点有一个详细的定义,很模糊的说明了,通过下面代码,可以观察出来,什么时候传的是值,什么时候传的是地址 有时候会发现自己的数据发生变化,可能就是这个原因,python的 ...
- php传值,传地址,传引用的区别
传值, 是把实参的值赋值给行参 那么对行参的修改,不会影响实参的值 传地址 是传值的一种特殊方式,只是他传递的是地址,不是普通的如int 那么传地址以后,实参和行参都指向同一个对象 传 ...
- C/C++中传值和传地址(引用)
C/C++中参数传递有两种方式,传值或传地址(传引用),通常我们要在被调用函数中改变一个变量的值就需要传地址调用方式,例如: void swap_by_value(int a, int b) { in ...
- go语言---传值和传引用
go语言---传值和传引用 https://blog.csdn.net/cyk2396/article/details/78893828 1.定义: b = a; b.modify(); 如果b的修改 ...
随机推荐
- 127.0.0.1 localhost 0.0.0.0 回环地址区别
127.0.0.1:一般认为是本机ip,这个没错.但是本机ip不只是 127.0.0.1 而是所有回环地址. 回环地址: 包括127.0.0.1在内的 所有 指向本机的地址.范围是 127.0.0. ...
- Host does not support domain type kvm for virtualization type 'hvm' arch 'x86_64'
kvm创建虚拟机报错: qemu-img create -f qcow2 /tmp/centos.qcow2 10G virt-install --virt-type kvm --name cento ...
- PHP 换行符 PHP_EOL
PHP 中换行可以用 PHP_EOL 来替代,以提高代码的源代码级可移植性: unix系列用 \n windows系列用 \r\n mac用 \r <?php echo PHP_EOL; //w ...
- nginx的url规则小tips
背景信息: 被代理的服务器(10.90.7.2)上,nginx的配置内容 server { listen ; server_name localhost; default_type text/html ...
- java小程序(课堂作业06)
编写一个程序,此程序在运行时要求用户输入一个 整数,代表某门课的考试成绩,程序接着给出“不及格”.“及格”.“中”.“良”.“优”的结论. 要求程序必须具备足够的健壮性,不管用户输入什 么样的内容,都 ...
- Jumpserver 介绍
安装jumperserver Sudo yum install –y git Su root Cd /usr/local Mkdir jumpserver 安装等依赖包 yum -y install ...
- TStrings (TStringList)很有功能
用 TStrings的Object 保存类的方式,来保存除了Items以外的值. 今天才发现,原来,TStrings下,还有 Items,Values,Items.Names,Items.Values ...
- linux 添加多个网段
1.在系统中添加网络配置文件脚本 # cd /etc/sysconfig/network-scripts # cp ifcfg-eth0 ifcfg-eth0:0 2.修改新添加的网络配置脚本文件如下 ...
- STL序列式容器学习总结
STL序列式容器学习总结 参考资料:<STL源码剖析> 参考网址: Vector: http://www.cnblogs.com/zhonghuasong/p/5975979.html L ...
- idea14导入eclipse项目并部署运行完整步骤
idea14导入eclipse项目并部署运行完整步骤 2015年05月12日 14:08:04 阅读数:40456 首先说明一下:idea里的project相当于eclipse里的workspace, ...