c++基础知识汇总
目录
1、基础
1.2 注释
1.3 变量
1.4 常量
1.5 关键字
1.6 标识符命名规则
2 数据类型
2.1 整型
2.2 sizeof关键字
2.3 实型(浮点型)
2.4 字符型
2.5 转义字符
2.6 字符串型
2.7 布尔类型 bool
2.8 数据的输入
1、基础
1.2 注释
作用:在代码中加一些说明和解释,方便自己或其他程序员程序员阅读代码
两种格式
-
单行注释:
// 描述信息-
通常放在一行代码的上方,或者一条语句的末尾,==对该行代码说明==
-
-
多行注释:
/* 描述信息 */-
通常放在一段代码的上方,==对该段代码做整体说明==
-
提示:编译器在编译代码时,会忽略注释的内容
1.3 变量
作用:给一段指定的内存空间起名,方便操作这段内存
语法:数据类型 变量名 = 初始值;
示例:
#include<iostream>
using namespace std;
int main() {
//变量的定义//语法:数据类型 变量名 = 初始值//变量创建的语法:数据类型 变量名 = 变量初始值
int a = 10;
cout << "a = " << a << endl;system("pause");
return 0;
}
注意:C++在创建变量时,必须给变量一个初始值,否则会报错
1.4 常量
作用:用于记录程序中不可更改的数据
C++定义常量两种方式
-
#define 宏常量:
#define 常量名 常量值-
==通常在文件上方定义==,表示一个常量
-
-
const修饰的变量
const 数据类型 常量名 = 常量值-
==通常在变量定义前加关键字const==,修饰该变量为常量,不可修改
-
示例:
#include<iostream>
using namespace std;//常量的定义方式
//1. #define 宏常量:
//2.const**修饰的变量//1、宏常量
#define Day 7int main() {//Day = 8; //错误,Day是常量,一旦修改就会报错cout << "一周里总共有 " << Day << " 天" << endl;//2、const修饰变量const int month = 12;//month = 24; //报错,const修饰的常量也称为变量cout << "一年里总共有 " << month << " 个月份" << endl;system("pause");return 0;
}
1.5 关键字
作用:关键字是C++中预先保留的单词(标识符)
-
在定义变量或者常量时候,不要用关键字
C++关键字如下:
| asm | do | if | return | typedef |
|---|---|---|---|---|
| auto | double | inline | short | typeid |
| bool | dynamic_cast | int | signed | typename |
| break | else | long | sizeof | union |
| case | enum | mutable | static | unsigned |
| catch | explicit | namespace | static_cast | using |
| char | export | new | struct | virtual |
| class | extern | operator | switch | void |
| const | false | private | template | volatile |
| const_cast | float | protected | this | wchar_t |
| continue | for | public | throw | while |
| default | friend | register | true | |
| delete | goto | reinterpret_cast | try |
提示:在给变量或者常量起名称时候,不要用C++得关键字,否则会产生歧义。
1.6 标识符命名规则
作用:C++规定给标识符(变量、常量)命名时,有一套自己的规则
-
标识符不能是关键字
-
标识符只能由字母、数字、下划线组成
-
第一个字符必须为字母或下划线
-
标识符中字母区分大小写
建议:给标识符命名时,争取做到见名知意的效果,方便自己和他人的阅读
2 数据类型
C++规定在创建一个变量或者常量时,必须要指定出相应的数据类型,否则无法给变量分配内存
2.1 整型
作用:整型变量表示的是==整数类型==的数据
C++中能够表示整型的类型有以下几种方式,区别在于所占内存空间不同:
| 数据类型 | 占用空间 | 取值范围 |
|---|---|---|
| short(短整型) | 2字节 | (-2^15 ~ 2^15-1) |
| int(整型) | 4字节 | (-2^31 ~ 2^31-1) |
| long(长整形) | Windows为4字节,Linux为4字节(32位),8字节(64位) | (-2^31 ~ 2^31-1) |
| long long(长长整形) | 8字节 | (-2^63 ~ 2^63-1) |
#include<iostream>
using namespace std;int main() {
//整形
//1、短整型(-32768-32767)
short num1 = 32768;
//2、整形
int num2 = 32768;
//3、长整型
long num3 = 10;//4、长长整型
long long num4 = 10;//输出语句
cout << "num1=" << num1 << endl;
cout << "num2=" << num2 << endl;
cout << "num3=" << num3 << endl;
cout << "num4=" << num4 << endl;system("pause");
return 0;
}
2.2 sizeof关键字
作用:利用sizeof关键字可以==统计数据类型所占内存大小==
语法: sizeof( 数据类型 / 变量)
示例:
#include<iostream>
using namespace std;int main() {//整型:short (2) int(4) long(4) long long (8)//可以利用sizeof求出数据类型占用内存大小//语法:sizeof(数据类型/变量)short num1 = 10;cout << "short 类型所占内存空间为: " << sizeof(short) << endl;int num2 = 10;cout << "int 类型所占内存空间为: " << sizeof(int) << endl;long num3 = 10;cout << "long 类型所占内存空间为: " << sizeof(long) << endl;long long num4 = 10;cout << "long long 类型所占内存空间为: " << sizeof(long long) << endl;//整型大小比较//short < int <= long <= long longsystem("pause");return 0;
}
整型结论:==short < int <= long <= long long==
2.3 实型(浮点型)
作用:用于==表示小数==
浮点型变量分为两种:
-
单精度float
-
双精度double
两者的区别在于表示的有效数字范围不同。
| 数据类型 | 占用空间 | 有效数字范围 |
|---|---|---|
| float | 4字节 | 7位有效数字 |
| double | 8字节 | 15~16位有效数字 |
示例:
int main() {
float f1 = 3.14f;double d1 = 3.14;
cout << f1 << endl;cout << d1<< endl;
cout << "float sizeof = " << sizeof(f1) << endl;cout << "double sizeof = " << sizeof(d1) << endl;
//科学计数法float f2 = 3e2; // 3 * 10 ^ 2 cout << "f2 = " << f2 << endl;
float f3 = 3e-2; // 3 * 0.1 ^ 2cout << "f3 = " << f3 << endl;
system("pause");
return 0;
}
2.4 字符型
作用:字符型变量用于显示单个字符
语法:char ch = 'a';
注意1:在显示字符型变量时,用单引号将字符括起来,不要用双引号
注意2:单引号内只能有一个字符,不可以是字符串
-
C和C++中字符型变量只占用==1个字节==。
-
字符型变量并不是把字符本身放到内存中存储,而是将对应的ASCII编码放入到存储单元
示例:
int main() {char ch = 'a';cout << ch << endl;cout << sizeof(char) << endl;
//ch = "abcde"; //错误,不可以用双引号//ch = 'abcde'; //错误,单引号内只能引用一个字符
cout << (int)ch << endl; //查看字符a对应的ASCII码ch = 97; //可以直接用ASCII给字符型变量赋值cout << ch << endl;
system("pause");
return 0;
}
ASCII码表格:
| ASCII值 | 控制字符 | ASCII值 | 字符 | ASCII值 | 字符 | ASCII值 | 字符 |
|---|---|---|---|---|---|---|---|
| 0 | NUT | 32 | (space) | 64 | @ | 96 | 、 |
| 1 | SOH | 33 | ! | 65 | A | 97 | a |
| 2 | STX | 34 | " | 66 | B | 98 | b |
| 3 | ETX | 35 | # | 67 | C | 99 | c |
| 4 | EOT | 36 | $ | 68 | D | 100 | d |
| 5 | ENQ | 37 | % | 69 | E | 101 | e |
| 6 | ACK | 38 | & | 70 | F | 102 | f |
| 7 | BEL | 39 | , | 71 | G | 103 | g |
| 8 | BS | 40 | ( | 72 | H | 104 | h |
| 9 | HT | 41 | ) | 73 | I | 105 | i |
| 10 | LF | 42 | * | 74 | J | 106 | j |
| 11 | VT | 43 | + | 75 | K | 107 | k |
| 12 | FF | 44 | , | 76 | L | 108 | l |
| 13 | CR | 45 | - | 77 | M | 109 | m |
| 14 | SO | 46 | . | 78 | N | 110 | n |
| 15 | SI | 47 | / | 79 | O | 111 | o |
| 16 | DLE | 48 | 0 | 80 | P | 112 | p |
| 17 | DCI | 49 | 1 | 81 | Q | 113 | q |
| 18 | DC2 | 50 | 2 | 82 | R | 114 | r |
| 19 | DC3 | 51 | 3 | 83 | S | 115 | s |
| 20 | DC4 | 52 | 4 | 84 | T | 116 | t |
| 21 | NAK | 53 | 5 | 85 | U | 117 | u |
| 22 | SYN | 54 | 6 | 86 | V | 118 | v |
| 23 | TB | 55 | 7 | 87 | W | 119 | w |
| 24 | CAN | 56 | 8 | 88 | X | 120 | x |
| 25 | EM | 57 | 9 | 89 | Y | 121 | y |
| 26 | SUB | 58 | : | 90 | Z | 122 | z |
| 27 | ESC | 59 | ; | 91 | [ | 123 | { |
| 28 | FS | 60 | < | 92 | / | 124 | | |
| 29 | GS | 61 | = | 93 | ] | 125 | } |
| 30 | RS | 62 | > | 94 | ^ | 126 | ` |
| 31 | US | 63 | ? | 95 | _ | 127 | DEL |
ASCII 码大致由以下两部分组成:
-
ASCII 非打印控制字符: ASCII 表上的数字 0-31 分配给了控制字符,用于控制像打印机等一些外围设备。
-
ASCII 打印字符:数字 32-126 分配给了能在键盘上找到的字符,当查看或打印文档时就会出现。
2.5 转义字符
作用:用于表示一些==不能显示出来的ASCII字符==
现阶段我们常用的转义字符有:\n \\ \t
| 转义字符 | 含义 | ASCII码值(十进制) |
|---|---|---|
| \a | 警报 | 007 |
| \b | 退格(BS) ,将当前位置移到前一列 | 008 |
| \f | 换页(FF),将当前位置移到下页开头 | 012 |
| \n | 换行(LF) ,将当前位置移到下一行开头 | 010 |
| \r | 回车(CR) ,将当前位置移到本行开头 | 013 |
| \t | 水平制表(HT) (跳到下一个TAB位置) | 009 |
| \v | 垂直制表(VT) | 011 |
| \\ | 代表一个反斜线字符"" | 092 |
| ' | 代表一个单引号(撇号)字符 | 039 |
| " | 代表一个双引号字符 | 034 |
| \? | 代表一个问号 | 063 |
| \0 | 数字0 | 000 |
| \ddd | 8进制转义字符,d范围0~7 | 3位8进制 |
| \xhh | 16进制转义字符,h范围0~9,a~f,A~F | 3位16进制 |
示例:
int main() {cout << "\\" << endl;cout << "\tHello" << endl;cout << "\n" << endl;
system("pause");
return 0;
}
2.6 字符串型
作用:用于表示一串字符
两种风格
-
C风格字符串:
char 变量名[] = "字符串值"示例:
int main() { char str1[] = "hello world";cout << str1 << endl;system("pause"); return 0; }
注意:C风格的字符串要用双引号括起来
-
C++风格字符串:
string 变量名 = "字符串值"示例:
int main() { string str = "hello world";cout << str << endl;system("pause"); return 0; }
注意:C++风格字符串,需要加入头文件==#include<string>==
2.7 布尔类型 bool
作用:布尔数据类型代表真或假的值
bool类型只有两个值:
-
true --- 真(本质是1)
-
false --- 假(本质是0)
bool类型占==1个字节==大小
示例:
int main() {
bool flag = true;cout << flag << endl; // 1
flag = false;cout << flag << endl; // 0
cout << "size of bool = " << sizeof(bool) << endl; //1system("pause");
return 0;
}
2.8 数据的输入
作用:用于从键盘获取数据
关键字:cin
语法: cin >> 变量
示例:
int main(){
//整型输入int a = 0;cout << "请输入整型变量:" << endl;cin >> a;cout << a << endl;
//浮点型输入double d = 0;cout << "请输入浮点型变量:" << endl;cin >> d;cout << d << endl;
//字符型输入char ch = 0;cout << "请输入字符型变量:" << endl;cin >> ch;cout << ch << endl;
//字符串型输入string str;cout << "请输入字符串型变量:" << endl;cin >> str;cout << str << endl;
//布尔类型输入bool flag = true;cout << "请输入布尔型变量:" << endl;cin >> flag;cout << flag << endl;system("pause");return EXIT_SUCCESS;
}
相关文章:
c++基础知识汇总
目录 1、基础 1.2 注释 1.3 变量 1.4 常量 1.5 关键字 1.6 标识符命名规则 2 数据类型 2.1 整型 2.2 sizeof关键字 2.3 实型(浮点型) 2.4 字符型 2.5 转义字符 2.6 字符串型 2.7 布尔类型 bool 2.8 数据的输入 1、基础 1.2 注释 作用&a…...
重磅!基于GPT-4的全新智能编程助手 GitHub Copilot X 来了!
GitHub Copilot相信大家一定不陌生了,强大的智能代码补全功能一度让媒体直呼程序员要被替代。随着OpenAI推出全新的GPT-4,GitHub Copilot也在3月22日,推出了全新一代产品:GitHub Copilot X 。最新的GitHub Copilot X 不仅可以自动…...
第04章_运算符
第04章_运算符 🏠个人主页:shark-Gao 🧑个人简介:大家好,我是shark-Gao,一个想要与大家共同进步的男人😉😉 🎉目前状况:23届毕业生,目前在某公…...
Excel 文件比较工具:xlCompare 11.0 Crack
(Excel 文件比较工具)xlCompare 11.0 下载并安装最新版本的 xlCompare。下载是一个功能齐全的版本。 筛选匹配的行 筛选不同的行 仅显示两个 Excel 文件中存在的行,并排除新(已删除)行 隐藏在另一张工作表上具有相应行…...
802.1x认证原理
802.1x认证原理802.1X认证简介802.1X认证协议802.1X认证流程802.1X认证简介 定义:802.1x协议是一种基于端口的网络接入控制协议。基于端口的网络接入控制,是指在局域网接入设备的端口这一级验证用户身份,并且控制其访问权限。优点࿱…...
GPIO的八种模式分析
GPIO是general purpose input output,即通用输入输出端口,作用是负责外部器件的信息和控制外部器件工作。 GPIO有如下几个特点:1.不同型号的IO口数量不同;2,反转快速,每次翻转最快只需要两个时钟周期,以ST…...
携职教育:财会人常用必备,203个EXCEL快捷键汇总
会用快捷键的人早下班! 作为财务人员如果你想要提高工作效率,不掌握一些Excel快捷键怎么行? 老板看见了,也会赞一声,“看,这就是专业。” 立马给你加薪(划掉),工作效率这…...
【美赛】2023年ICM问题Z:奥运会的未来(思路、代码)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
CSS基础入门
CSS基础之语法 介绍 CSS(层叠样式表)是一门用来设计网页样式的语言,如网页的布局、字体、颜色搭配、视觉特效。作为WEB开发的基础技术之一,掌握CSS的语法和API对于我们构建丰富的网页是必须的。 基础语法 <style>div …...
可重入锁、读写锁、邮戳锁 详解
文章目录1、可重入锁(递归锁)2、读写锁2.1、读写分离2.2、从写锁到读锁,ReentrantReadWriteLock可以降级2.3、写锁和读锁是互斥的3、邮戳锁StampedLock3.1、是什么3.2、锁饥饿3.3、如何缓解锁饥饿问题呢3.3.1、使用“公平”策略3.3.2、Stampe…...
HBase客户端、服务器端、列簇设计、HDFS相关优化,HBase写性能优化切入点,写异常问题检查点
HBase客户端、服务器端、列簇设计、HDFS相关优化,HBase写性能优化切入点,写异常问题检查点HBase读优化1.1 HBase客户端优化1) scan缓存是否设置合理?2) get请求是否可以使用批量请求?3) 请求是否可以显示指定列簇或者列࿱…...
DINO-DETR在COCO缩减数据集上实验结果分析
博主在进行DINO-DETR模型实验时,使用缩减后的COCO数据集进行训练,发现其mAP值只能达到0.27作用,故而修改了下pycocotool的代码,令其输出每个类别的AP值,来看看是由于什么原因导致这个问题。 之所以这样是因为博主认为各…...
语聊房app源码及架构设计
语音社交产品技术架构设计 语音社交产品的技术架构设计是产品开发中非常重要的一环。在设计时需要考虑产品的功能、性能、可靠性等多个方面,同时也需要与产品策划与设计相协调。以下是语音社交产品技术架构设计的主要内容。 架构设计原则 在设计语音社交产品的技…...
什么是软件测试?5分钟带你快速了解!
经常有人问我,你的公司是做什么的?我回答“软件测试”,看着对方一脸的迷茫。何为软件测试?软件测试究竟测试什么?一、软件测试的定义和意义软件测试是伴随着软件工程的重要组成部分,是软件质量保证的重要前…...
[3D游戏开发实践] Cocos Cyberpunk 源码解读-手把手教你新增一个后效Shader
Cocos Cyberpunk 是 Cocos 引擎官方团队以展示引擎重度 3D 游戏制作能力,提升社区学习动力而推出的完整开源 TPS 3D游戏,支持 Web, IOS, Android 多端发布。 本系列文章将从各个方面对源码进行解读,提升大家的学习效率。希望能够帮助大家在 …...
构建产品帮助中心,促进SaaS企业的进步
长期来看,保留现有客户比获取新客户更为关键,因此建立良好的客户服务质量需要着重关注客户心理状态。 什么是 SaaS SaaS是软件即服务(Software as a Service)的缩写。它是一种软件交付模式,其中软件应用程序托管在云计…...
【Qt】Qt单元测试详解(四):Google Test
1、创建测试工程 【Qt】Qt单元测试详解(一):通过QtCreator创建测试工程 2、添加测试代码 2.1 默认生成的代码 1)项目工程pro include(gtest_dependency.pri)TEMPLATE = app CONFIG += console c++14 CONFIG -= app_bundle CONFIG += thread CONFIG -= qtHEADERS += \t…...
容器引擎Docker的常用命令
一.镜像相关命令 1.搜索镜像 可使用 docker search命令搜索存放在 Docker Hub中的镜像。执行该命令后, Docker就会在Docker Hub中搜索含有 java这个关键词的镜像仓库 docker search java以上列表包含五列,含义如下: NAME:镜像仓库名称。D…...
vue尚品汇商城项目-day01【3.项目路由的分析】
文章目录本人其他相关文章链接安装命令:cnpm install --save vue-router vue-router 前端所谓路由:kv键值对 key:URL(地址栏中的路径) value:相应的路由组件 注意:本项目是上中下结构 路由组件: Home首页路由组件、Search路由组件…...
详解--高级IO
文章目录前言一、五种IO模型阻塞IO非阻塞IO信号驱动IOIO多路转接:异步IO二、高级IO同步通信和异步通信阻塞 VS 非阻塞其他高级IO三、非阻塞IOfcntl实现函数SetNoBlock总结前言 理解五种IO模型的基本概念.重点是IO多路转接. 正文开始! 一、五种IO模型 IO: 等 数据拷贝 read/…...
未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
渲染学进阶内容——模型
最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...
cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
【C++】纯虚函数类外可以写实现吗?
1. 答案 先说答案,可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...
从实验室到产业:IndexTTS 在六大核心场景的落地实践
一、内容创作:重构数字内容生产范式 在短视频创作领域,IndexTTS 的语音克隆技术彻底改变了配音流程。B 站 UP 主通过 5 秒参考音频即可克隆出郭老师音色,生成的 “各位吴彦祖们大家好” 语音相似度达 97%,单条视频播放量突破百万…...
更新 Docker 容器中的某一个文件
🔄 如何更新 Docker 容器中的某一个文件 以下是几种在 Docker 中更新单个文件的常用方法,适用于不同场景。 ✅ 方法一:使用 docker cp 拷贝文件到容器中(最简单) 🧰 命令格式: docker cp <…...
简单聊下阿里云DNS劫持事件
阿里云域名被DNS劫持事件 事件总结 根据ICANN规则,域名注册商(Verisign)认定aliyuncs.com域名下的部分网站被用于非法活动(如传播恶意软件);顶级域名DNS服务器将aliyuncs.com域名的DNS记录统一解析到shado…...
