为啥地址传递后还是不能改变值?

zaixiankaifa zaixiankaifa 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
#include <iostream>
using namespace std;
int main(){
void swap(int *p1,int *p2);
int *pointer_1,*pointer_2,a,b;
cin>>a>>b;
pointer_1=&a;
pointer_2=&b;
if(a<b)swap(pointer_1,pointer_2);
cout<<"max="<<a<<"min="<<b<<endl;
return 0;
}
void swap(int *p1,int *p2)
{
int *temp;
temp=p1;
p1=p2;
p2=temp;
}




在谭浩强的那本经典教材《C++程序设计》里面看到上面这个程序,说是用地址传递去改变值,但是使用地址传递之后,还是不能改变,为啥呢?
另外,书中有两句话不明白:1.实参变量与形参变量之间的数据传递是单向的“值传递”方式,指针变量作为函数参数也要这一规则。
2.调用函数时不会改变实参指针变量的值,但可以改变实参指针变量所指向变量的值。(不是说,只是改变指针所指向的变量吗,怎么可以把指向的变量的值也可以修改了? 应该是改变所指的变量呀,而不是改变所指向的值)

...全文

相关推荐

c++按引用传递

指针是一个变量,存储的是对象的内存地址,而引用则是对象的别名,实际上是对象自身。引用不能像指针那样被重新赋值,也不能是NULL。引用传递的规则引用有以下三个规则:1.

liujiancheng815

C++ 值传递、指针传递、引用传递

值传递: 形参是实参的拷贝,改变形参的值并不会影响外部实参的值。从被调用函数的角度来说,值传递是单向的(实参-&gt;形参),参数的值只能传入, 不能传出。当函数内部需要修改参数,并且不希望这个改变影响调用者时,采用值传递。 指针传递: 形参为指向实参地址的指针,当对形参的指向操作时,就相当于对实参本身进行的操作 引用传递: 形参相当于是实参的“别名”,对形参的操作其实就是对实参的操作,在引用传递...

源代码大师

JavaScript传递变量: 值传递?引用传递?

因为整数是按值传递的,所以y被赋新值时,x的值不会改变。接下来,我们看引用传递的情况。在引用传递中,传递给函数的是实际值的引用(或地址)。

weixin_38683562

html页面跳转传递参数问题

然后,使用`window.location.href`属性来改变当前页面的URL,从而实现页面跳转。在URL中传递的参数遵循HTTP请求的查询字符串格式,即`?

weixin_38517728

彻底搞定C 指针 (完全版 ·修订增补版)

- **`const int *const pi`**:`pi`指向的地址不能改变,且`pi`指向的值也不能改变。#### 第伍篇 函数参数的传递##### 1.

xiaoleisme
评论 7
收藏 已收藏
分享
返回顶部
zaixiankaifa
新手乐园 33,315 成员 41,769 内容