C++指针及引用问题

[复制链接]
查看11 | 回复5 | 2011-10-7 19:33:59 | 显示全部楼层 |阅读模式
//不要想得太复杂,引用也就是传地址,比如下面执行swap(p1,p2)之后,那么p1和px同时指向变量x的内存地址,p2和py同时指向变理y的内存地址#include//void swap(int *px, int *py)//形式参数为指针,因为主函数传来的是地址{int t; //定义变量t,是用来作中间变量的t=*px;
//把主函数x的值赋给t*px=*py;//把主函数y的值赋给x*py=t;//把t的值值赋给主函数中的y,t的值也就是原来主函数中x的值}//好了,这里就已经完成主函数中x,y的交换了void main(){int x=3, y=9,*p1,*...
回复

使用道具 举报

千问 | 2011-10-7 19:33:59 | 显示全部楼层
引用就是拿他的地址作为参数传.在使用的时候要取值,当然也可以进行地址运算.不是逆运算。简单的说.一种是拿地址传,一种是直接复制一个值传进去.区别是,当参数值被改变时,引用类型的参数最后会也会相应的被改变.因为本来就是拿他来运算.而值参数,只是备份了一个值传进去.结果不影响原来的那个值.....
回复

使用道具 举报

千问 | 2011-10-7 19:33:59 | 显示全部楼层
swap(p1,p2);那句改swap(&x,&y);就行了...
回复

使用道具 举报

千问 | 2011-10-7 19:33:59 | 显示全部楼层
其实,无论是指针还是引用,传的都是地址,所以结果是一样的。谭浩强的《C语言程序设计》中指出指针和引用是逆运算。...
回复

使用道具 举报

千问 | 2011-10-7 19:33:59 | 显示全部楼层
效果是一样的,引用是变量的别名,所以使用引用当然会改变变量的值啊,指针指向的是变量的地址,访问变量当然也会改变里面的值啦...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行