当前位置: 首页 > news >正文

001_C++语法基础

C++语法基础

  1. 所有C++语法要用英文
  2. 区分大小写
  3. 每个语句写完以分号结束

C++标准输入输出头文件iostream

若想通过C++实现数据的输入和输出,需要导入标准输入输出头文件

#include <iostream>

标准输入输出头文件<iostream>中包含了cin输入语句和cout输出语句

标准命名空间std

C++的标准输入输出是cin cout,而是为了避免出现同名语句cin cout,于是标准输入输出cin cout被划分到了标准命名空间std中,所有若我们要想使用标准输入输出cin cout,需要先使用命名空间std

using namespace std;

主函数

每一个C++程序必须要有一个入口,通过入口才能找到我们的目标源程序
C++使用主函数main()作为C++程序的入口,一个C++程序有且仅有一个主函数(入口)

int main(){//编写目标代码return 0; // 结束程序
}

输出语句

C++中的标准输出语句为cout
我们可以通过cout向计算机下达输出指令,让计算机输出一句话。

输出hello world

cout语句后要接 <<符号,意为流插入运算符
输出一句话要用英文的双引号包起来,代表字符串的类型

cout << "Hello world";

前面知识代码解释

// 包含了一个标准输入输出头文件
// i-input 0-output s-stream 流 
#include <iostream>  // cin cout
// 使用 标准命名 空间std 
using namespace std; // 区分标准cin/cout和其他同名cin/cout // main() 主函数 入口 有且仅有一个 
int main() { // << 流插入运算符号 cout << "Hello World\n" << endl;return 0; // 结束C++程序
}

endl 换行

如果要输出一首诗,我们可以先输出第一行的字符串,然后使用cout输出endl指令,即输出一个换行,换行之后再继续输出第二行的字符串,以此类推…

#include <iostream> 
using namespace std; int main() { cout << "朝辞白帝彩云间";cout << endl;cout << "千里江陵一日还"; cout << endl;return 0;
}

cout 链式编程

cout支持链式编程,上面案例我们可以使用cout进行链式编程

#include <iostream> 
using namespace std; int main() { cout << "朝辞白帝彩云间" << endl<< "千里江陵一日还" << endl;return 0;
}
课堂练习

打印输出如下图形

  ****
*****

代码:

#include <iostream> 
using namespace std; int main() { cout << "  *" << endl << " ***" << endl << "*****" << endl;return 0;
}

标识符(biao zhi fu)

标识符(identifier)是指用来标识某个实体的一个符号。在计算机编程语言中,标识符是用户编程时使用的名字,用于给变量、常量、函数、语句块等命名,以建立名称与使用之间的关系。

C++中的标识符的命名规则:

  • 由数字、字母、下划线构成,但是数字不能用作开头

关键字

关键字(keyword)属于保留字,是整个C++语言范围内预先保留的标识符。

每个C++关键字都有特殊的含义、功能。

简单来说就是C++中一切带有功能的语句都属于关键字,如我们了解过的语句:int return using 这些都属于关键字。

变量

变量,顾名思义,值可变的量,在C++中,如何定义一个可以存储整数的变量呢?

int age = 18;
// 变量
int age; // int数据类型-声明一个变量为整数类型(整型)
age = 18; // age变量名-可以存储整型数据
#include <iostream> 
using namespace std; int main() { int age;age = 38;cout << "王老师的年龄是:" << age << "岁。" << endl;return 0;
}

变量的命名规则

变量名属于自定义的标识符,所有变量的命名规则同标识符的命名规则一样:

  • 由数字、字母、下划线构成,但是数字不能用作开头

而关键字是C++整个语言范围内预先保留的标识符,所以关键字不能用作变量名

除了变量名以外,后续我们还将设计常量名、函数名、数组名、结构体名等等,这些均属于自定义的标识符,皆要遵循标识符的命名规则和命名规范。

变量的命名规范

变量的命名要有意义:

  • 如果我们要存储年龄,可以定义age变量,如果我们要存储名字,可以定义name变量。

复杂的变量名要采用驼峰命名法:

  • 比如我们的变量名要表达我的理想身高,采用驼峰命名法应写为:myIdealHeight

其他自定义的标识符也将遵循此命名规范。

#include <iostream> 
using namespace std; int main() { int myIdealHeight = 210;cout << "王老师的理想身高是:" << myIdealHeight << endl;return 0;
}

常量

常量,值不可改变的量,在C++中,如何定义一个可以存储整数的常量呢?

const int age = 18;
#include <iostream> 
using namespace std; int main() { // 通过int声明了一个整型变量a int a = 1;// 通过const修饰了变量b,使得变量b变为常量 const int b = 1;// 常量应用 比如圆周率 运行中不能被修改 b = 2; // *常量不能修改,编译不会通过 return 0;
}

注意: 除了const声明的变量作为常量外,C++还有其他常量,如:数字本身(123)即是常量、字符串本身("hello")是常量、变量的地址也是常量等等,常量的最大特征就是本身不可被修改

C++程序运行过程

  1. 编辑代码
  2. 编译
  3. 运行执行文件查看结果

编译过程

编译器就是将"高级语言"翻译为"机器语言(低级语言)"的程序。

一个现代编译器的主要工作流程:源代码(source code) -> 预处理(preprocessor) -> 编译(compiler) -> 汇编程序(assembler) -> 目标代码(object code) -> 链接器(Linker) -> 可执行程序(executables)。

常见的C++编译器主要分为GCC家族和MS家族,我们现在所使用的VS中搭载的编译器为MS家族中的MSVC。

#include <iostream> 

# 标#号的都会预处理,# 预处理命令

解释和调试

编译是将整个代码一起翻译为01。

而解释是逐行地翻译为01。

若我们直接编译C++程序,则这个过程就是编译过程,若我们在使用断点调试进行代码调试的时候,这个时候就是解释的过程。

相关文章:

001_C++语法基础

C语法基础 所有C语法要用英文区分大小写每个语句写完以分号结束 C标准输入输出头文件iostream 若想通过C实现数据的输入和输出&#xff0c;需要导入标准输入输出头文件 #include <iostream>标准输入输出头文件<iostream>中包含了cin输入语句和cout输出语句 标…...

对Excel表中归类的文件夹进行自动分类

首先把excel表另存为.txt文件&#xff08;注意&#xff1a;刚开始可能是ANSI格式&#xff0c;需要转成UTF-8格式&#xff09;&#xff1b;再新建一个.txt文件&#xff0c;重命名成.bat文件(注意&#xff1a;直接创建的如果是是UTF-8格式&#xff0c;最好转成ANSI格式&#xff0…...

LabVIEW液压支架控制系统的使用与各种配置的预测模型的比较分析

LabVIEW液压支架控制系统的使用与各种配置的预测模型的比较分析 模型预测控制在工业中应用广泛。这种方法的优点之一是在求解最优控制问题时能够明确考虑对输入和输出状态施加的约束。控制对象模型用于有限时间范围内最优控制的实时计算。所使用的数学设备允许从具有单输入和单…...

C++中位运算符使用

& 与 只有都为1结果为1 0 & 0 00 & 1 01 & 0 01 & 1 1 | 或 只要一个为1结果为1 0|00 0|11 1|01 1|11 ^ 异或 两个相同的数字为0&#xff0c;其余为1 0^00 1^01 0^11 1^10 ~ 取反 将进制位数进行取反 ~1-2 //0000 0001-->代…...

微机原理 || 第2次测试:汇编指令(加减乘除运算,XOR,PUSH,POP,寻址方式,物理地址公式,状态标志位)(测试题+手写解析)

&#xff08;一&#xff09;测试题目&#xff1a; 1.数[X]补1111,1110B&#xff0c;则其真值为 2.在I/O指令中,可用于表示端口地址的寄存器 3. MOV AX,[BXSl]的指令中&#xff0c;源操作数的物理地址应该如何计算 4.执行以下两条指令后&#xff0c;标志寄存器FLAGS的六个状态…...

人员闯入检测告警算法

人员闯入检测告警算法通过yolov5网络模型识别检测算法&#xff0c;人员闯入检测告警算法对未经许可或非法进入的人员进行及时识别告警&#xff0c;确保对危险区域的安全管理和保护。YOLO系列算法是一类典型的one-stage目标检测算法&#xff0c;其利用anchor box将分类与目标定位…...

python中super()用法

super关键字的用法 一、概述二、作用三、语法四、使用示例1.通过super() 来调用父类的__init__ 构造方法&#xff1a;2.通过supper() 来调用与子类同名的父类方法2.1 单继承2.2 多继承 一、概述 super() 是python 中调用父类&#xff08;超类&#xff09;的一种方法&#xff0…...

jmeter While控制器

一种常见的循环控制语句&#xff0c;用于重复执行一段代码块&#xff0c;直到指定的条件不再满足。 参数&#xff1a; 空LASTJMeter变量、函数、属性或任意其他可用表达式 &#xff08;jmeter提供的方法&#xff09;。判断变量值count_num小于等于20&#xff0c;推荐简单的几…...

3D数字孪生技术助力港口全新升级,提供实时数据进行智能调度

港口3D数字孪生平台是一种基于数字技术的虚拟模型&#xff0c;它可以模拟真实的港口环境&#xff0c;并对港口的运营、管理、安全等方面进行实时监控和优化。该平台带来了许多智能化提升&#xff0c;包括以下几个方面&#xff1a; 一、自动化操作和智能调度 数字孪生平台可以通…...

Qt日历控件示例-QCalendarWidget

基本说明 QCalendarWidget介绍&#xff1a; QCalendarWidget 是 Qt 框架中提供的一个日期选择控件,用户可以通过该控件快速选择需要的日期,并且支持显示当前月份的日历。 这里&#xff0c;我们继承了QCalendarWidget&#xff0c;做了一些简单封装和样式调整 1.使用的IDE&…...

函数式编程(四)Stream流使用

一、概述 在使用stream之前&#xff0c;先理解Optional 。 Optional是Java 8引入的一个容器类&#xff0c;用于处理可能为空的值。它提供了一种优雅的方式来处理可能存在或不存在的值&#xff0c;避免了空指针异常。 Optional的主要特点如下&#xff1a; 可能为空&#xff…...

区块链面临六大安全问题 安全测试方案研究迫在眉睫

区块链面临六大安全问题 安全测试方案研究迫在眉睫 近年来&#xff0c;区块链技术逐渐成为热门话题&#xff0c;其应用前景受到各国政府、科研机构和企业公司的高度重视与广泛关注。随着技术的发展&#xff0c;区块链应用与项目层出不穷&#xff0c;但其安全问题不容忽视。近年…...

K8S---kubelet TLS 启动引导

一、引导启动初始化过程(Bootstrap Initialization ) 1、kubeadm 生成一个Token,类似07401b.f395accd246ae52d这种格式,或者自己手动生成2、使用kubectl命令行,生成一个Secret,具体详见认证、授权3、kubelet 进程启动 (begin)4、kubelet 看到自己没有对应的 kubeconfig…...

Android系统修改驱动固定USB摄像头节点绑定前后置摄像头

前言 Android系统中usb摄像头节点会因为摄像头所接的usb口不同或者usb设备识别顺序不一样而出现每次开机生成的video节点不一样的问题。由于客户app调用摄像头时,需要固定摄像头的节点。因此需要针对前面的情况做处理。 方式1:通过摄像头名称固定摄像头节点 --- a/kernel…...

RT-Thread 内核移植

内核移植 内核移植就是将RTT内核在不同的芯片架构、不同的板卡上运行起来&#xff0c;能够具备线程管理和调度&#xff0c;内存管理&#xff0c;线程间同步等功能。 移植可分为CPU架构移植和BSP&#xff08;Board support package&#xff0c;板级支持包&#xff09;移植两部…...

springboot中entity层、dto层、vo层通俗理解三者的区别

entity&#xff1a;这个类的属性是跟数据库字段一模一样的&#xff08;驼峰命名&#xff09;&#xff0c;当我们使用MyBatis-Plus的时候经常用得到。 dto&#xff1a;用于后端接收前端返回的数据&#xff0c;一般是post请求&#xff0c;前端会给我们返回一个json对象&#xff…...

TypeScript_队列结构-链表

队列 队列&#xff08;Queue&#xff09;&#xff0c;它是一种受限的线性表&#xff0c;先进先出&#xff08;FIFO First In First Out&#xff09; 受限之处在于它只允许在队列的前端&#xff08;front&#xff09;进行删除操作而在队列的后端&#xff08;rear&#xff09;进…...

STM32G0 定时器PWM DMA输出驱动WS2812配置 LL库

通过DMA方式输出PWM模拟LED数据信号 优点&#xff1a;不消耗CPU资源 缺点&#xff1a;占用内存较大 STM32CUBEMX配置 定时器配置 定时器通道&#xff1a;TIM3 CH2 分频&#xff1a;0 重装值&#xff1a;79&#xff0c;芯片主频64Mhz&#xff0c;因此PWM输出频率&#xff1a…...

记录错误:Access denied for user ‘root‘@‘localhost‘ (using password:No) 解决方案

他说我没输入密码&#xff0c;但是我输入了啊&#xff1f;&#xff1f;于是&#xff0c;我试了试这儿&#xff0c;password 一改就好了。。。 他原来是是我打的很快&#xff0c;快速生成的。。。。...

python爬虫实战(5)--获取小破站热榜

1. 分析地址 打开小破站热榜首页&#xff0c;查看响应找到如下接口地址 2. 编码 定义请求头 拿到标头 复制粘贴&#xff0c;处理成json 处理请求头代码如下: def format_headers_to_json():f open("data.txt", "r", encoding"utf-8") # 读…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…...

Spark 之 入门讲解详细版(1)

1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室&#xff08;Algorithms, Machines, and People Lab&#xff09;开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目&#xff0c;8个月后成为Apache顶级项目&#xff0c;速度之快足见过人之处&…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作&#xff1a; 1&#xff09;、切换集群 2&#xff09;、切换节点 3&#xff09;、切换到 apparmor 的目录 4&#xff09;、执行 apparmor 策略模块 5&#xff09;、修改 pod 文件 6&#xff09;、…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 笔者写过很多次这道题了&#xff0c;不想写题解了&#xff0c;大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一&#xff09; 1. CSI-2层定义&#xff08;CSI-2 Layer Definitions&#xff09; 分层结构 &#xff1a;CSI-2协议分为6层&#xff1a; 物理层&#xff08;PHY Layer&#xff09; &#xff1a; 定义电气特性、时钟机制和传输介质&#xff08;导线&#…...

pam_env.so模块配置解析

在PAM&#xff08;Pluggable Authentication Modules&#xff09;配置中&#xff0c; /etc/pam.d/su 文件相关配置含义如下&#xff1a; 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块&#xff0c;负责验证用户身份&am…...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户&#xff0c;但你不希望用 root 权限运行 ns-3&#xff08;这是对的&#xff0c;ns3 工具会拒绝 root&#xff09;&#xff0c;你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案&#xff1a;创建非 roo…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…...

【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】

1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件&#xff08;System Property Definition File&#xff09;&#xff0c;用于声明和管理 Bluetooth 模块相…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)

在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...