函数的传值

函数在我看来最主要在于函数参数的传递,其余的与正常编程无太大差别


函数参数传值方式:

1.传数值

2.传地址

3.引用


引用:

类型名 &引用名=变量名

相当于一个变量的别名


int n=4;

int &r=n;                                  //&在声明变量语句中作为引用

r=4;

cout<<r;                                  //输出4

cout<<n;                                 //输出4

n=5;

cout<<r;                                 //输出5


引用例子

void swap(int &a,int &b)            //此处形参为引用

{

int tmp;

tmp=a;

a=b;

b=tmp;

}

int main()

{

int n1,n2;

cin>>n1>>n2;

swap(n1,n2);

cout<<n1<<n2;

}


传地址:

指针变量

内容为地址,指向地址存放的变量为目标变量。

定义方法

类型标识符 *变量名;

int i;                        //此时系统分配地址存储i

&i;                          //&在正常语句中为取址符

int *i_point,*j_point;    //定义方法,*为定义指针

int *i_point=&i;            //定义并赋初值的简单方法(比较方便)

*i_point=3;                   //*为取内容运算

指针变量的值一定为地址,地址内的目标变量一定与类型标识符相同。(与不同变量所占字节有关)

绝对不能对未赋值的指针变量作“取内容”运算。(此时指针变量内地址随机,可能损害内存)

对指针变量取内容运算对值的修改会影响目标变量的值,如:

int i,*p;

p=&i;

*p=10;

cout<<i;                  //此时输出10

分清取地址,取内容,定义指针,引用,即可对指针变量、引用熟练操作。


指针运算

++(--):指向下一个(上一个)同种类型的数据

int a[4];int *p=a;p++;                   //此时指针p为数组a首地址也就是a[0]的地址

                                                     //p++相当于p指向的地址先后加相应类型大小的空间之后的位置

                                                     //要求p++之后的地址与定义时变量类型相同

指针与数组

指针与数组其实很相似,数组名即为数组的首地址,也就可以作出如下定义:

int a[4];

int  *p=a;         


指针传递函数参数

void swap(int *p1,int *p2)

{

int t;

t=*p1;*p1=*p2;*p2=t;

}




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值