C语言的传值与传址调用
2016-03-11 00:00
423 查看
传值调用并不能改变两个变量的值,而传址能。
为什么,因为,传值调用,仅仅是在函数内,调换参数的值。
而地址所指向的值,改变的不仅仅是函数内,函数外也改变。
请看代码:
这里还要注意:通常我们不会返回局部变量的地址.
为什么,因为,传值调用,仅仅是在函数内,调换参数的值。
而地址所指向的值,改变的不仅仅是函数内,函数外也改变。
请看代码:
这里还要注意:通常我们不会返回局部变量的地址.
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语言错误之--初始值(低级错误)
- 学习C语言的数组
- Reverse反转算法+斐波那契数列递归+Reverse反转单链表算法--C++实现
- C语言--static全局使用示例
- C++语言出现的bug
- 第二次作业 对VC++6.0编译软件的评价
- C语言学习笔记_3基本的标准输入与输出
- C语言学习笔记_4流程控制
- caffe train c++
- C语言小结1
- 有趣的C语言,打印心形
- 第一次课设完成后的闲谈——学生宿舍管理系统
- 【总结】C++静态成员函数及测试用例
- C语言知识总结
- C++ 上机报告项目1-2
- c++顺序表【构造函数、运算符重载、析构函数、增删查改等】
- c_c++
- c++学习笔记之拷贝
- VMware下的RHEL 6.4 安装gcc和gcc-c++
- C++ 关于最长下降子序列问题