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

来源:互联网 发布:淘宝双十一交易情况 编辑:程序博客网 时间:2024/06/05 22:52

& 在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




0 0