码迷,mamicode.com
首页 > 编程语言 > 详细

C/C++系列之复杂引用

时间:2019-11-27 01:01:27      阅读:96      评论:0      收藏:0      [点我收藏+]

标签:tin   改变   形参   printf   style   loading   using   png   name   

以struct类型为例:

  • 引用
#include"iostream"
#include<string>
using namespace std;
struct mycoach
{
    string name;
    int age;
};

void printinfo1(mycoach &cpc)
{
    //参数是mycoach实例的别名,指向入参的真实地址,所以一改入参的值也跟着改
    cpc.name = "陈培昌";
}

void main()
{
    mycoach coach1;
    coach1.name = "徐晓冬";
    printinfo1(coach1);
    cout << "这位神秘嘉宾是" << coach1.name << endl;//陈培昌
    system("pause");
}

输出结果:

技术图片

 

  •  形参传入----可以预见这种方式不会改变struct实例的值
#include"iostream"
#include<string>
using namespace std;
struct mycoach
{
    string name;
    int age;
};

void printinfo1(mycoach cpc)
{
    //参数是mycoach实例的别名,指向入参的真实地址,所以一改入参的值也跟着改
    cpc.name = "陈培昌";
}

void main()
{
    mycoach coach1;
    coach1.name = "徐晓冬";
    printinfo1(coach1);
    cout << "这位神秘嘉宾是" << coach1.name << endl;
    system("pause");
}

输出结果:

技术图片

 

  •  指针---效果同引用
#include"iostream"
#include<string>
using namespace std;
struct mycoach
{
    string name;
    int age;
};

void printinfo3(mycoach *cpc)
{
    //和引用效果一样,入参为指针类型,可以更改指向地址的数据
    cpc->age = 40;
    cout << "hello, myname is " << cpc->name << "今年芳龄" << cpc->age << endl;
}

void main()
{
    mycoach coach1;
    coach1.name = "徐晓冬";
    mycoach *xxd = &coach1;
    printinfo3(xxd);
    cout << "这位神秘嘉宾是" << coach1.name << endl;
    system("pause");
}

输出结果:

技术图片

 

 

 通过代码可以看出,函数中传入的指针和struct实例处于同一内存地址上

#include"iostream"
#include<string>
using namespace std;
struct mycoach
{
    string name;
    int age;
};

void printinfo3(mycoach *cpc)
{
    //和引用效果一样,入参为指针类型,可以更改指向地址的数据
    cpc->age = 40;
    cout << "hello, myname is " << cpc->name << "今年芳龄" << cpc->age << endl;
    printf("内存地址是%d\n",cpc);
}

void main()
{
    mycoach coach1;
    coach1.name = "徐晓冬";
    mycoach *xxd = &coach1;
    printinfo3(xxd);
    cout << "这位神秘嘉宾是" << coach1.name << endl;
    printf("struct实例地址是%d\n", &coach1);
    system("pause");
}

技术图片

 

C/C++系列之复杂引用

标签:tin   改变   形参   printf   style   loading   using   png   name   

原文地址:https://www.cnblogs.com/saintdingspage/p/11939309.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!