学习笔记(引用,动态分配等等)

& 在C++中表示引用,用来表示存储器的别名。

int x =7;
int& y=x;//定义了一个指向x的引用
上面分配了一个int单元,它有两个名字x ,y。

还需要注意的是指针的引用

int a = 1;
int b = 2;  
int *tmp = &a;
int *p = tmp;// 第二种情况:int *&p = tmp;(此既是指向指针的引用)
p = &b;
*p = 5;
结果一:a=1,b=5,*tmp=1;*p=5;

结果二:a=1,b=5,*tmp=5,*p=5;


动态分配

class Person
{
  public:
  void eat();
  private:
  int m_iAge;
  string m_strName; 
}
int main(void)
{
Person one = new Person();//动态分配存储空间
delete one;//释放分配的存储空间,new 和delete 同时结对出现。
Person two; //当不需要时,系统自动释放存储空间
}

引用调用

当一个函数的参数为引用参数,则会出现引用调用。在以往的程序中我们都是直接传递参数,实际上函数里的虚参为实参的一个拷贝,在函数中对虚参进行计算是无法改变实际参数的,若使用引用调用,则是将实际参数传递给函数进行运算,在函数中改变参数的值,主程序中的值也会改变。

#include<iostream>
using namespace std;

void swap(int a,int b);//第二种情况:void swap(int& a,int & b);
int main(void)
{
   int x = 4;
   int y = 11;
   cout<<"x="<<x<<", y="<<y<<endl;
   swap(x,y);
    cout<<"x="<<x<<", y="<<y<<endl;
return 0;
}
void swap(int a,int b)
{
  int temp;
  temp = a;
  a = b;
  b = temp;
}
/**第二种情况:
void swap(int& a,int& b)
{
  int temp;
  temp = a;
  a = b;
  b = temp;
}

*/
第一种情况:

a=4,b=11

a=4,b=11

第二种情况:

a=4,b=11

a=11,b=4




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值