栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

c++(6)对C语言的扩充,引用

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c++(6)对C语言的扩充,引用

1、引用

实际上可以理解成,是一个变量的别名。使用方法

#include 
using namespace std;

int main(void)
{
        int a = 10;
        int &re = a;//&取地址符,在定义过程中出现,代表引用

        re = 100;
        cout<<"a = "< 

结果为a = 100

2、引用的特性

(1)、引用声明的时候必须初始化,一经声明,不可改变。

(2)、引用没有定义,是一种关系型声明。类型要与原变量类型保持一致,且不分配内存。与被引用的变量有相同的地址。

(3)、可以对引用,再次引用。多次引用的结果,是某一变量具有多个别名。(大名、小名、昵称)

(4)、&符号前有数据类型的时候,是引用。其他皆为取地址。

3、引用的优点、使用场景:

(1)作为函数的入参,修改入参的值,降低入参使用难度。这也是c++加入引用的初衷。

(2)当入参数据很大时,不需要拷贝操作,不耗费资源

#include 
using namespace std;

struct student{
	int id;
	char name[64];
};

void change_value(int *input)
{
	*input = 999;
}

void change_value2(int &input)
{
	input = 1000;
}

void printS(struct student s) //stu  s = s1;结构体整个值拷贝的动作,当结构体数据量大的时候,就比较耗费资源
{
	cout<id<<" "<name<#include 
using namespace std;

struct typeA{
	int &a;
};

struct typeB{
	int *a;
};

struct student{
	int id;
	char name[64];
};

void motify1(int *const a)
{
	*a = 300;
}

void motify2(int &a)//当我们将引用作为函数参数传递的时候,编译器会替我们将实参,取地址给引用
{
	a = 300;//对一个引用操作赋值的时候,编译器替我们隐藏了*操作
}

int main(void)
{
	cout<<"sizeof(typeA) = "<
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/971256.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号