C++(初阶入门基础补充内容)

前言

如果你已经看过C++初阶入门基础,那么可能会有一些疑惑,不要着急,本篇博客就带你解决这些博主写文章时遗漏的知识点(最近复习数据结构突然想起来了(汗颜))。如果你还没有看过,那么建议你看过之后再来看这篇文章。文章篇幅不是很长,请耐心看完。


C++中引用和C语言中的typedef的区别

相信你也会有这些疑惑,既然引用取别名,那么就会让人想到C语言当中的typedef也有取别名的作用,当然他们还是有区别的,请看下边他们的对比:


C++当中的引用

引⽤的概念和定义
引⽤不是新定义⼀个变量,⽽是给已存在变量取了⼀个别名,编译器不会为引⽤变量开辟内存空间,它和它引⽤的变量共⽤同⼀块内存空间。⽐如:⽔壶传中李逵,宋江叫"铁⽜",江湖上⼈称"⿊旋⻛";林冲,外号豹⼦头;
类型& 引⽤别名 = 引⽤对象;

下边是引用的实例:

#include<iostream>
using namespace std;
int main()
{
	int a = 0;
	// 引⽤:b和c是a的别名
	int& b = a;
	int& c = a;
	// 也可以给别名b取别名,d相当于还是a的别名
	int& d = b;
	++d;
	// 这⾥取地址我们看到是⼀样的
	cout << &a << endl;
	cout << &b << endl;
	cout << &c << endl;
	cout << &d << endl;
	return 0;
}

在上述代码中,abcd的本质就是名字不同。

但是在内存空间上是指向同一块空间的,就比如下图所示:

C语言typedef

typedef常用于结构体当中,主要是对于数据类型进行重新命名。比如对变量的重新命名

例如:

#include <stdio.h>
struct student
{
	char name[4] = {'Q','H','T'};
	int age=0;
};
typedef struct student st;//这就是对于学生student类型进行了重新命名,在主函数当中也可以使用重新命名的类型创建变量
//例如
int main()
{
	st st1;
	printf("%s\n", st1.name);
	printf("%d\n", st1.age);
	return 0;
}

//还有就是下边的例子:
#include <stdio.h>
typedef int i;//给int类型取一个别名i

struct student
{
	char name[4] = { 'Q','H','T' };
	i age = 0;//可以使用int类型的别名定义一个变量
};
typedef struct student st;//这就是对于学生student类型进行了重新命名,在主函数当中也可以使用重新命名的类型创建变量
//例如
int main()
{
	st st1;
	printf("%s\n", st1.name);
	printf("%d\n", st1.age);
	return 0;
}

总结

相信你看过C++初阶入门基础对于引用的介绍是不陌生的,那么请你注意这两个字:变量!!!

这就是应用和typedef最为本质的区别,C语言当中的typedef是对于数据的类型进行取别名,而不是对于变量取别名。

所以两者之间最大的区别就在于

C++的引用是给变量取别名,而且还可以取多个别名

C语言typedef是给数据类型取别名,(一般只能取一个别名,当然你可以去尝试取多个别名试一试看行不行)。

结语

好了,以上便是博主遗漏的知识点,希望对你的疑惑有所帮助,当然以后博主还会继续寻找遗漏的知识点,不定期更新这篇文章的!如果你还有什么其他的疑惑和不解,请放心大胆的发送在评论区,博主看到之后会积极回应并更新博客的!感谢阅读!我们下一篇博客再见!!!

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值