2.C++中程序的语法基础--关键字与分隔符

news2024/11/15 2:03:44

现在回过头来看上一篇中所写的程序:

#include <bits/stdc++.h>
using namespace std;
int main() {
    // 程序主体
    cout << "HelloWorld" <<  endl;    
	 return 0; 
}

我们会看到许多英文单词,像"include"、“using”,“int”,“main”,“HelloWorld”等,但是这些哪些属于关键字,哪些是非关键字呢?

首先来看关键字的定义:

关键字是计算机语言定义好的字符序列,有着特殊的含义,一般情况下不能做其它的使用,属于编程语言保留的特殊单词,用于执行特定的功能或操作。

C++中的关键写都是小写的,常用的关键字有 include,int , return , if , else, namespace , break , case , char , while 等等。这些在常用的开发中,需要根据C++语言的标准来查询关键字,但是只要知道这些常用的关键字,其它的不常用的,在使用的时候,可以查询资料或搜索,慢慢就会知道哪些是关键字了。

除在关键字,关键字的名称是编程语言定义好的,供开发者使用的,还有一类是自己定义的名称,这类我们可以称作标识符,比较常见的一些内容,比如,函数名,常量名,变量名,结构体,类名等。这些在以后的程序中会讲解,现在只知道这些概念即可。

标识符的命名遵循下面几个规则:

1.标识符必须以字母或下划线开始,后面可以跟任意数量的字母、数字或下划线。
2.标识符区分大小写。
3.不能使用C++的关键字作为标识符。
4.标识符最好具有描述性,简洁性和一致性。

最后第4条为建议性内容。

#include <bits/stdc++.h>
using namespace std;
int main() {
    // 程序主体
    int val;                  // 合法
	int _val;                 // 合法
	int 1val;                 // 不合法,不能以数字开头
	int vval#;                 // 不合法,不能包含#符号
	int int;                    // 不合法,使用了关键字
	void printName();  // 合法
	void print_name(); // 合法,推荐使用下划线分隔
	void _print_name(); // 合法,推荐使用下划线分隔
	void 1print_name(); // 不合法,不能以数字开头
    cout << "HelloWorld" <<  endl;    
	 return 0; 
}

比如printName和print_name 第二个print_name在c++中为推荐的命名方法,在其它开发语言中并不是推荐原命名方法,在各种开发语言中常用的命名方法有如下几种:

Camel Case(驼峰式命名 Java 建议使用此方法):每个单词的首字母大写,除了第一个单词的首字母小写。例如:userName, userInfo
Pascal Case(帕斯卡命名,C#使用建议使用此方法 ):每个单词的首字母大写,包括第一个单词的首字母也大写例如:Student, UserName
Snake Case(下划线命名 C/C++建议使用此方法):单词之间使用下划线(_)分隔例如:user_name, user_phone
Kebab Case(短横线命名 见的相对较少):单词之间使用短横线(-)分隔例如:page-number, page-size。

再来看C++的分隔符

在C++源代码中有一些被定义用于分隔代码作用的字符,这些字符称为分隔符,常见的分隔符有分号(;),左右花括号({}),空白,Tab键(tab),冒号(:)等,其中分号(;)为最常见的分隔符,看程序

每个语句结尾包括了一个分号(;)表明此句结束了,还有大括号({}),

#include <bits/stdc++.h>
using namespace std;
int main() {  //开始分割符 
    cout << "HelloWorld" <<  endl;    
	 return 0; 
} //结束分隔符

开始分隔符表示此函数main的作用范围的开发,结束分隔符表示main函数结构范围的结束,开始分隔符和结束分隔符必须同时出现,缺一不可,比如没有结束分隔符,则在编译时会出现错误,

在程序出现错误时,查看必要的错误信息是很重要的,上面的main(){}即为一个函数,{}表示函数块。

空白分隔符与tab分隔符主要是为了方便阅读和分隔不同的标识标 关键字等加进去的,两个标识符间有时需要使用空白或分隔符分隔,或者是其它使用符号连接,比如加号(+)

这里的分隔符是为了方便阅读加进来的,如果去掉,也不影响程序的执行。

但是去掉后,再看程序的执行

看程序执行起来是一样的,介理代码阅读起来,就不如加上空白或tab键方便了 。

上面三个是程序中最常用的分隔符。

分隔符冒号(:)不在同的地方作用是不一样的,我的理解是,如果表示分隔,比如在构造函数中,是类给变量赋值的方法,用于初始化成员变量,这个具体的用户,等用到再说。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2146754.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智能车镜头组入门(四)元素识别

元素识别是摄像头部分中难度最大的一部分&#xff0c;也是我花时间最长的一部分&#xff0c;前前后后画了很长时间&#xff0c;最后还是勉勉强强完成了。 基础的元素识别主要有两个&#xff1a;十字&#xff0c;圆环&#xff0c;和斑马线。十字要求直行&#xff0c;圆环需要进…

科技修复记忆:轻松几步,旧照变清晰

在时间的长河中&#xff0c;旧照片承载着无数珍贵的记忆与故事。然而&#xff0c;随着岁月的流逝&#xff0c;这些照片往往变得模糊不清&#xff0c;色彩黯淡&#xff0c;令人惋惜。 幸运的是&#xff0c;随着科技的发展&#xff0c;我们有了多种方法来修复这些旧照片的画质&a…

【Python基础】Python模块(提高代码可维护性与重用性的关键)

本文收录于 《Python编程入门》专栏&#xff0c;从零基础开始&#xff0c;分享一些Python编程基础知识&#xff0c;欢迎关注&#xff0c;谢谢&#xff01; 文章目录 一、前言二、什么是Python模块&#xff1f;三、创建模块四、导入模块五、使用if __name__ "__main__&quo…

(黑马点评) 五、探店达人系列功能实现

5.1 发布和查看探店笔记 5.1.1 发布探店笔记 这块代码黑马已经完成了&#xff0c;在发布探店笔记界面&#xff0c;有两块内容是需要上传的。一是笔记内容&#xff0c;二是笔记配图。其中笔记配图部分黑马使用的是上传到本地前端服务器上面的。我我觉得可以将图片文件发布在阿里…

开始你的博客之旅:从零到一的详细指南

创建博客不仅是表达自我的方式&#xff0c;更是与世界分享知识、塑造个人品牌、甚至实现商业变现的强大工具。本文将详细介绍从确定主题到实际运营的每个步骤&#xff0c;帮助你顺利开启个人博客的旅程。 确定博客的主题和目标 在开始博客之前&#xff0c;首先要明确博客的主…

windows环境下安装python第三方包

python环境下&#xff0c;通常通过Anaconda来管理多个python环境&#xff1b; 即通过Anaconda创建python不用的虚拟环境&#xff1b; 1. 安装更新python第三方包&#xff0c;打开Anaconda&#xff0c;在右侧的搜索需要的python包并进行安装&#xff1b; 2.如果没有搜索到&…

【线性规划求解系列】MATLAB中使用linprog解决线性规划问题

linprog - 求解线性规划问题 - MATLAB - MathWorks 中国https://ww2.mathworks.cn/help/optim/ug/linprog_zh_CN.html 本文详细介绍了如何在MATLAB中使用linprog函数来解决各种类型的线性规划问题。首先概述了linprog的基本语法&#xff0c;随后通过五个具体实例演示了如何处理…

《中国数据库前世今生》纪录片观感:从古至今数据库的演变与未来

我的数据库之路&#xff1a;从新手到稳步前行 三年数据库开发的经历&#xff0c;让我从一名菜鸟程序员逐步成长为能够独立解决问题的开发者。这段时间里&#xff0c;我经历过迷茫、困惑&#xff0c;也感受过技术攻关后的成就感。最近看了腾讯云推出的《中国数据库前世今生》纪…

基于机器学习的注意力缺陷/多动障碍 (ADHD)(python论文+代码)HYPERAKTIV

简述 医疗保健领域的机器学习研究往往缺乏完全可重复性和可比性所需的公共数据。由于患者相关数据附带的隐私问题和法律要求&#xff0c;数据集往往受到限制。因此&#xff0c;许多算法和模型发表在同一主题上&#xff0c;没有一个标准的基准。因此&#xff0c;本文提出了一个公…

盘点BDC/ZCU方案常用的芯片

文章目录 1.前言2.方案概述3.主控芯片3.1 RH850/U2A3.2 TC39x3.3 E34303.4 CCFC3007、CCFC3012 4.电源芯片4.1 混合方案4.2 分立方案 5.电机驱动芯片5.1 多路半桥驱动5.2 多路预驱5.3 步进电机驱动5.4 H桥驱动5.4.1 TI的H桥驱动5.4.2 ST的H桥驱动 6.高边驱动芯片/低边驱动芯片6…

自定义项目授权文件生成与认证

基于 TrueLicense 生成的授权文件证书存在很多局限性。所用这里通过自定义的方式来实现一个License授权文件的生成&#xff01; 这里通过非对称加密RSA 的方式来创建 项目授权文件内容&#xff01; 需要注意项目打包后最好将class文件进行防反编译的操作&#xff01; 否则通过暴…

LVGL 控件之滑动条(lv_slider)

目录 一、概述二、滑块1、设置滑块当前值和范围值2、设置滑块部件的模式3、禁用单击4、事件5、API 函数 一、概述 滑动条对象看起来像是在 进度条 增加了一个可以调节的旋钮&#xff0c;使用时可以通过拖动旋钮来设置一个值。 就像进度条&#xff08;bar&#xff09;一样&…

828华为云征文|采用华为云Flexus云服务器X实例部署MQTT服务器完成设备上云

文章目录 一、前言1.1 开发需求1.2 Flexus云服务器介绍1.3 EMQX服务器 二、服务器选购2.1 登录官网2.2 选购服务器2.3 选择服务器区域2.4 选择服务器规格2.5 选择系统镜像2.6 选择存储盘2.7 配置密码2.8 配置云备份2.9 确认配置2.10 立即购买2.10 后台控制台 三、服务器登录3.1…

最佳软件测试基础入门教程4静态测试

静态测试 对工作产品&#xff08;文档和代码&#xff09;进行静态测试和分析&#xff0c;对提高产品质量有很大的帮助。本章介绍了静态测试的一般情况&#xff0c;以及所涉及的具体过程&#xff0c;包括其活动和必须填补的角色。我们描述了四种经过验证的技术和它们的具体优势…

【HarmonyOS 】编译报错:Install Failed: error: failed to install bundle

此问题是由于支付宝sdk兼容性造成的&#xff0c;目前只能删除支付宝sdk依赖&#xff0c;如下图所示操作&#xff0c;删除后需要点右上角的 Sync Now&#xff0c;并等待 Sync 结束 删除后还需要点右上角的 Sync Now&#xff0c;并等待 Sync 结束 uniapp解决方案&#xff1a; htt…

50个必须知道的VS代码扩展

我们即将浏览50个必须知道的VS Code扩展&#xff0c;这些扩展将大幅提高您的生产力&#xff0c;并帮助您像专业人士一样编码&#xff01; 1. TabNine TabNine 是一个基于AI的自动完成工具&#xff0c;它可以根据您的代码上下文和模式建议完成&#xff0c;通过智能自动完成提高…

6000 字掌握 Java IO 知识体系

“子谦&#xff0c;Java IO 也太上头了吧&#xff1f;”新兵蛋子小二向头顶很凉快的老韩抱怨道&#xff0c;“你瞧&#xff0c;我就按照传输方式对 IO 进行了一个简单的分类&#xff0c;就能搞出来这么多的玩意&#xff01;” 好久没搞过 IO 了&#xff0c;老王看到这幅思维导图…

【HarmonyOS NEXT】DevEco快速实现真机截屏,并保存到电脑

点日志点照机图标选一个路径保存图片在ide中右键图片&#xff0c;点复制电脑随便找个位置保存图片https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-screenshot-V5

SpringBoot(40) — SpringBoot整合MyBatis-plus

前言 在上节中我们对MyBatis-plus特性有了一个整体的认识&#xff0c;然后也大致讲了些MyBatis与MyBatis-plus的不同之处。大家感兴趣的话&#xff0c;可参考以下文章 SpringBoot(39) — MyBatis-plus简介 这节我们来讲讲SpringBoot项目如何快速接入MyBatis-plus框架。 今天涉及…

Redis技术解析(基础篇)

1.初识Redis Redis是一种键值型的NoSql数据库&#xff0c;这里有两个关键字&#xff1a; 键值型 Redis-server NoSql 其中键值型&#xff0c;是指Redis中存储的数据都是以key、value对的形式存储&#xff0c;而value的形式多种多样&#xff0c;可以是字符串、数值、甚至jso…