c++代码中“引用”的使用

十年热恋 提交于 2019-12-07 01:08:34

这些上机实验在Qt5.9上完成的,具体步骤

 

 

  • 结构体引用
#include <iostream>
#include<stdlib.h>
using namespace std;
struct mycoach
{
    string name;
    int age;
};

void *addcoachinfo(mycoach * &cpc,string name,int age)
{
    cpc=(mycoach*)malloc(sizeof(mycoach));
    cpc->name=name;
    cpc->age=age;
    cout<<"大家好我是"<<cpc->name<<"今年芳龄"<<cpc->age<<endl;
    free(cpc);
    cpc=NULL;
}

int main()
{
    mycoach *cpc=NULL;
    addcoachinfo(cpc,"陈培昌",22);
    return 0;
}

 

  •  引用分为普通引用和常引用
int main()
{
    int a=10;
    int &aa =a;
    aa=88;
    printf("%d\n",aa);
    return 0;
}

常引用的目的往往是不希望被修改

 

 

 

 

引用实际上是内存的别名,由于字面量没有地址,因此第9行的代码有误

正确的做法是第10行

函数中常引用,目的是让实际参数只拥有只读属性

  • 对指针的引用
#include <iostream>

using namespace std;

struct mycoach
{
    string name;
    int age;
};

int main()
{
    mycoach *cpc = (mycoach*)malloc(sizeof(mycoach));
    cpc->name="陈培昌";
    mycoach * &wr=cpc;
    wr->name="魏锐";
    cout <<cpc->name<< endl;
    return 0;
}

 

  •  对比:常量引用
#include <iostream>

using namespace std;

struct mycoach
{
    string name;
    int age;
};

void showinfo(const mycoach &cpc)
{
    //cpc.name="中国队长";如果去掉注释就报错,常量不可修改
    cout<<"hello! I'm"<<cpc.name<<endl;
}

int main()
{
    mycoach *cpc = (mycoach*)malloc(sizeof(mycoach));
    cpc->name="陈培昌";
    const mycoach &wr=*cpc;//常量引用只能引用字面量
    showinfo(wr);
    return 0;
}

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!