C语言的传值与传址调用
2015-06-12 13:39
288 查看
1. 函数参数传递方式之一:值传递
void Exchg1(int x, int y) //定义中的x,y变量被称为Exchg1函数的形式参数
{
int tmp;
tmp=x;
x=y;
y=tmp;
printf(“x=%d,y=%d/n”,x,y)
}
void main()
{
int a=4,b=6;
Exchg1 (a,b) //a,b变量为Exchg1函数的实际参数。
printf(“a=%d,b=%d/n”,a,b)
}
程序输出的结果是:
x=6 , y=4
a=4 , b=6 //为什么不是a=6,b=4呢?
2. 函数参数传递方式之二:地址传递
Exchg2(int *px, int *py)
{
int tmp=*px;
*px=*py;
*py=tmp;
print(“*px=%d,*py=%d/n”,*px,*py);
}
main()
{
int a=4;
int b=6;
Exchg2(&a,&b);
Print(“a=%d,b=%d/n”, a, b);
}
它的输出结果是:
*px=6,*py=4
a=6,b=4
3. 函数参数传递方式之三:引用传递
Exchg3(int &x, int &y) //注意定义处的形式参数的格式与值传递不同
{
int tmp=x;
x=y;
y=tmp;
print(“x=%d,y=%d/n”,x,y);
}
main()
{
int a=4;
int b=6;
Exchg3(a,b); //注意:这里调用方式与值传递一样
Print(“a=%d,b=%d/n”, a, b);
}
输出结果:
x=6, y=4
a=6, b=4 //这个输出结果与值传递不同。
void Exchg1(int x, int y) //定义中的x,y变量被称为Exchg1函数的形式参数
{
int tmp;
tmp=x;
x=y;
y=tmp;
printf(“x=%d,y=%d/n”,x,y)
}
void main()
{
int a=4,b=6;
Exchg1 (a,b) //a,b变量为Exchg1函数的实际参数。
printf(“a=%d,b=%d/n”,a,b)
}
程序输出的结果是:
x=6 , y=4
a=4 , b=6 //为什么不是a=6,b=4呢?
2. 函数参数传递方式之二:地址传递
Exchg2(int *px, int *py)
{
int tmp=*px;
*px=*py;
*py=tmp;
print(“*px=%d,*py=%d/n”,*px,*py);
}
main()
{
int a=4;
int b=6;
Exchg2(&a,&b);
Print(“a=%d,b=%d/n”, a, b);
}
它的输出结果是:
*px=6,*py=4
a=6,b=4
3. 函数参数传递方式之三:引用传递
Exchg3(int &x, int &y) //注意定义处的形式参数的格式与值传递不同
{
int tmp=x;
x=y;
y=tmp;
print(“x=%d,y=%d/n”,x,y);
}
main()
{
int a=4;
int b=6;
Exchg3(a,b); //注意:这里调用方式与值传递一样
Print(“a=%d,b=%d/n”, a, b);
}
输出结果:
x=6, y=4
a=6, b=4 //这个输出结果与值传递不同。
相关文章推荐
- C++【静态成员】
- chapter12test2
- 【深度探索C++对象模型读书笔记】【第5章】构造、析构、拷贝语意学
- 传智播客c/c++公开课学习笔记--邮箱账户的破解与邮箱安全防控
- 【深度探索C++对象模型读书笔记】【第5章】构造、析构、拷贝语意学
- C++11 中值得关注的几大变化(详解)
- 【leetcode c++】13 Roman to Integer
- C++ 鼠标模拟程序
- vs中c、c++屏蔽警告
- C/C++文件读取报错:stack around the variable 'x' was corrupted.
- [C++] MyList<T>
- 【C++】STL队列和栈的使用
- C/C++获取windows进程路径的方法
- c++异常处理机制示例及讲解
- C# base 和 C++ __super
- 【C语言】C语言动态分配内存
- c++ & * 符号的多重含义
- C++ string 字符串 知识点 小结
- 【高级算法】Lasvegas算法解决3SAT问题(C++实现代码)
- C++【操作符重载】