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

内存分配函数malloc kmalloc vmalloc

内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题&#xff1a; 下面创建一个简单的Flask RESTful API示例。首先&#xff0c;我们需要创建环境&#xff0c;安装必要的依赖&#xff0c;然后…...

从WWDC看苹果产品发展的规律

WWDC 是苹果公司一年一度面向全球开发者的盛会&#xff0c;其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具&#xff0c;对过去十年 WWDC 主题演讲内容进行了系统化分析&#xff0c;形成了这份…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis&#xff1f;2.为什么要使用redis作为mysql的缓存&#xff1f;3.什么是缓存雪崩、缓存穿透、缓存击穿&#xff1f;3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系&#xff0c;主要是分成几个表&#xff0c;用户表我们是记录用户的基础信息&#xff0c;包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题&#xff0c;不同的角色&#xf…...

将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?

Otsu 是一种自动阈值化方法&#xff0c;用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理&#xff0c;能够自动确定一个阈值&#xff0c;将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲&#xff1a; 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年&#xff0c;数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段&#xff0c;基于数字孪生的水厂可视化平台的…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935&#xff0c;SRS管理页面端口是8080&#xff0c;可…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序

一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...