当前位置: 首页 > 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") # 读…...

单目标应用:基于麻雀搜索算法SSA的微电网优化调度MATLAB

一、微网系统运行优化模型 参考文献&#xff1a; [1]李兴莘,张靖,何宇,等.基于改进粒子群算法的微电网多目标优化调度[J].电力科学与工程, 2021, 37(3):7 二、麻雀搜索算法简介 麻雀搜索算法 (Sparrow Search Algorithm, SSA) 是一种新型的群智能优化算法&#xff0c;于2020…...

C# easymodbus

库介绍 EasyModbus是用于 .NET 和 Java 平台上的Modbus TCP/UDP/RTU通讯协议库&#xff0c;支持多种编程语言&#xff0c;如C#、VB.NET、Java、C 与更多C#的变体&#xff0c;如Unity、Mono、.NET Core等等。 EasyModbus的Java版本至少需要Java 7&#xff0c;而C#版本兼容 .NE…...

HikariCP源码修改,使其连接池支持Kerberos认证

HikariCP-4.0.3 修改HikariCP源码,使其连接池支持Kerberos认证 修改后的Hikari源码地址:https://github.com/Raray-chuan/HikariCP-4.0.3 Springboot使用hikari连接池并进行Kerberos认证访问Impala的demo地址:https://github.com/Raray-chuan/springboot-kerberos-hikari-im…...

5分钟看明白rust mod use

rust把mod简单的事没说清&#xff0c;一片混乱&#xff0c;似懂非懂. mod语句查找只有一条规则&#xff1a;先找mod名1.rs,没有就我同名文件夹下的mod名1.rs&#xff0c;如果没有&#xff0c;就同名文件夹下的mod名1/mod.rs,再没有就error. 在mod.rs中&#xff0c;pub mod 文件…...

【Java核心知识】ThreadLocal相关知识

ThreadLocal 什么是ThreadLocal ThreadLoacal类可以为每个线程保存一份独有的变量&#xff0c;该变量对于每个线程都是独占的。实现原理为每个Thread类中包含一个ThreadHashMap&#xff0c;key为变量的对应的ThreadLocal对象&#xff0c;value为变量的值。 在日常使用中&…...

《Python基础教程(第三版)》阅读笔记 1

目录 1 快速上手&#xff1a;基础知识2 列表和元组3 字符串4 字典5 条件、循环及其他6 抽象7 再谈抽象8 异常9 魔法方法、特性和迭代器10 开箱即用 本文参考自《Beginning Python: from novice to professional》&#xff0c;中文版为《Python基础教程&#xff08;第三版&#…...

坦克400 Hi4-T预售价28.5万元起,越野新能源好理解

8月25日&#xff0c;在以“智享蓉城&#xff0c;驭见未来”为主题的成都国际车展上&#xff0c;坦克品牌越野新能源再启新程&#xff0c;首次以全Hi4-T新能源阵容亮相展台&#xff0c;释放坦克品牌加速布局越野新能源的强烈信号。 Hi4-T架构首款落地车型坦克500 Hi4-T上市至今斩…...

我的Vim学习笔记(不定期更新)

2023年9月3日&#xff0c;周日上午 学到了啥就写啥&#xff0c;不定期更新 目录 字体 文件 标签页 分屏 调用系统命令 字体 设置字体大小 :set guifont字体:h字体大小 例如&#xff0c;:set guifontMonospace:h20 查询当前使用的字体和字体大小 :set guifont? 查看…...

spring boot项目生成容器并运行

一个安静的周末&#xff0c;shigen又睡懒觉了&#xff0c;上次说的拖延症的惩罚来了&#xff1a;早晚各100个健腹轮练习&#xff0c;早上的已经完成了。今天的文章来的有点晚&#xff0c;但是依旧保持质量。 springboot项目生成容器并运行 背景 将springboot项目打包成jar包&…...

Vue之html中特殊符号的展示

Vue之html中特殊符号的展示 在html中使用特殊字符时直接展示会报错&#xff0c;需要使用实体名称或者实体编号才能展示。 最常用的字符实体 显示结果 描述 实体名称 实体编号空格 < 小于号 < &…...