C语言的传值与传址调用
2015-10-19 19:46
225 查看
传值调用并不能改变两个变量的值,而传址能。
为什么,因为,传值调用,仅仅是在函数内,调换参数的值。
而地址所指向的值,改变的不仅仅是函数内,函数外也改变。
请看代码:
这里还要注意:通常我们不会返回局部变量的地址.
为什么,因为,传值调用,仅仅是在函数内,调换参数的值。
而地址所指向的值,改变的不仅仅是函数内,函数外也改变。
请看代码:
这里还要注意:通常我们不会返回局部变量的地址.
#include <stdio.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语言中的break、continue和goto三者的区别与用法
- C语言基础
- 三角形 算法第一集
- 学习C语言的数组
- C++STL学习(7)各种容器总结
- C语言强制类型转换
- 借刀杀对象--Raii技法(C++版)
- 《C++ Primer 5th》读书笔记3---关于类的构造函数
- 设计模式之工厂方法模式
- C语言 ## __VA_ARGS__ 宏
- 【C】用C语言提取bmp图片像素,并进行K-means聚类分析——容易遇到的问题
- C语言中没有string类
- C++入门学习——虚函数表介绍
- c++ 使用socket实现C/S端文件的下载传输
- Eclipse环境安装C/C++插件CDT和Eclipse安装的插件卸载(删除)
- STL中的map、unordered_map、hash_map
- xpp文件与cpp文件的区别
- C++Windows下递归遍历多级目录
- Leetcode Spiral Matrix
- c语言——正差值