C++入门超详解(1)

---

🔍 🔍 努力到无能为力,拼搏到感动自己。


😇 😇 今天要向各位小伙伴们介绍的是 c++入门语法
在这里插入图片描述

🌴 一、关键字

⚓️简介:关键字属于保留字,是整个语言范围内预先保留的标识符。每个C++关键字都有特殊的含义。经过预处理后,关键字从预处理记号中区别出来,剩下的标识符作为记号,用于声明对象、函数、类型、命名空间等

🌵 注意❗️ ❗️
🌱 不能声明与关键字同名的标识符。

在这里插入图片描述


🌴 二、命名空间

⚓️ 目的:对标识符的名称进行本地化,以避免命名冲突名字污染

🍄 1、命名空间定义

🌳 <1>直接命名 (namespace 自定义名称 {})
🌳 <2>命名空间可以嵌套(可以多个嵌套)

🍊 代码⬇️ ⬇️ :

//命名空间的定义和嵌套
namespace N
{
   
	int a = 10;
	namespace N1
	{
   
		int a = 20;
		namespace N2
		{
   
			int a = 30;
		}
	}
}

🌵 注意❗️ ❗️
🌱 当同一个工程中存在多个相同名称的命名空间,相同名称的命名空间会合并到一起

🍄 2、命名空间的使用

🌳 <1>命名空间名称加作用域限定符

🍊 代码⬇️ ⬇️ :

int main() {
   
	int a = 0;
	cout << a << endl;
	cout << N::a << endl;
	cout << N::N1::a << endl;
	cout << N::N1::N2::a << endl;
	return 0 ;
}

🌳 <2>using加命名空间成员

🍊 代码⬇️ ⬇️ :

using std::cout;
using std::cin;
using std::endl;

🌳 <3>using namespace加命名空间

🍊 代码⬇️ ⬇️ :

using namespace std;

🌴三、输入&输出

⚓️ cin:标准输入流
⚓️ cout:标准输入流

🍎 (1)使用cin输入或cout输出时要包含头文件 (没有“.h”,旧编译器(vc 6.0)中还支持<iostream.h>格式,后续编译器已不支持,因此推荐使用 +std的方式。)。

🍎 (2)cin和cout都存在于std标准命名空间中,“::”是作用域限定符

🌵 注意❗️ ❗️
🌱 (1)输入和输出都不需要去增加数据格式控制如%d,%c,其可以自动识别
🌱 (2)在C++中是兼容C的,C中的语法内容在C++中一样可以使用。
🌱 (3)C中的标准输入函数scanf,标准输出函数printf与C++中的cin,cout各有优劣,使用时应该视情况而定。


🌴 四、缺省参数

⚓️ 大家知道备胎是什么吗?
在这里插入图片描述

🍄 1、缺省参数定义

⚓️ C++中,在相较于C的基础上引入了缺省参数。缺省数是声明或定义函数时为函数的参数指定一个默认值。在调用该函数时,如果没有指定实参则采用该默认值,否则使用指定的实参。

🍄 2、参数缺省的场景

🌾 (1)全缺省参数

🍊 代码⬇️ ⬇️ :

void DatePrint(int year = 0, int month = 1, int day = 1)
{
   
	cout << year <<"年" <<month<<"月" <<day<< "日" << endl;

}

🌵 注意❗️ ❗️
🌱 当我们需要进行函数的声明和定义时,在进行声明的时候就给参数指定默认值,后面的定义就不需要指定默认值了。

🌾 (2)半缺省参数

🍊 代码⬇️ ⬇️ :

void TestFun1(int a, int b = 3, int c = 4)
{
   
	cout << "a=" << a << endl;
	cout << "b=" << b << endl;
	cout << "c=" << c << endl;
}

🌵 注意❗️ ❗️
🌱 1.半缺省参数必须从右往左依次来给出,不能间隔着给。
🌱 2. 缺省参数不能在函数声明和定义中同时出现(一般在进行声明时就给参数指定默认值)。


🌴五、函数重载

🍄 1、函数重载概念

⚓️ 重载:自然语言中,一个词可以有多重含义,人们可以通过上下文来判断该词真实的含义,即该词被重载了。

⚓️ 函数重载的概念:重载函数是函数的一种特殊情况,为使用方便,C++允许在同一作用域中声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同,也就是说用同一个函数完成不同的功能。重载函数常用来实现功能类似而所处理的数据类型不同的问题。

🍄 2、函数重载实例

🍊 代码⬇️ ⬇️ :

int TestFun(int a, int b, int c)
{
   
	cout << "a=" << a << endl;
	cout << "b=" << b << endl;
	cout << "c=" << c << endl;
	return 0;
}
//(1)参数的类型不同
int TestFun(double a, int
  • 20
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论
Protobuf是一种二进制序列化数据的格式,它可以用来在不同的语言和平台之间进行数据交换。在C语言中,我们可以使用Protobuf的C库来进行相关操作。在Protobuf的C语言实现中,optional关键字用于定义可选的字段,也就是说这些字段可以有值,也可以为空。 在使用C语言的Protobuf库进行序列化和反序列化时,我们可以使用optional关键字来定义消息中的字段。在生成的C代码中,每个optional字段将被定义为可选的,并且可以通过设置是否存在来判断该字段是否被填充。这使得我们可以在C程序中根据需要选择性地处理消息中的字段。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [ProtoBuf C++入门解析一](https://blog.csdn.net/qq135595696/article/details/125825476)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [c++ protobuf 练习](https://download.csdn.net/download/weixin_38684633/14042371)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [protobuf c/c++详解](https://blog.csdn.net/lang151719/article/details/115214859)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

今天也要写bug

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值