【C/C++】C/C++编程——C++ 关键字和数据类型简介

C++ 关键字和数据类型简介

大家好,我是 shopeeai,也可以叫我虾皮,中科大菜鸟研究生。昨天已经成功运行了第一个C++程序,今天来学习一下C++ 关键字和数据类型。C++ 中的关键字是由 C++ 标准预先定义的。它们被保留作为语言的一部分,开发者不能将这些关键字用作变量名、函数名或任何其他标识符的名称。每个关键字都有其独特的语义,这些语义告诉编译器如何理解和处理接下来的代码。下面详细讲解一些常见的 C++ 关键字:

基本数据类型关键字

  • int, char, float, double, bool, void, wchar_t

在这里插入图片描述

基本数据类型关键字用于声明不同类型的变量。例如,int 用于整数,char 用于字符,floatdouble 用于浮点数,bool 用于布尔值,void 表示无类型,通常用于指定不返回任何值的函数的返回类型,wchar_t 用于宽字符。

类型修饰符关键字

  • signed, unsigned, short, long

    在这里插入图片描述

    类型修饰符关键字用于修改基本数据类型。例如,unsigned int 表示无符号整数,long double 表示扩展精度的浮点数。

程序控制结构关键字

  • if, else, switch, case, default, for, do, while, break, continue, goto

在这里插入图片描述

程序控制结构关键字用于控制程序流程。如 ifelse 用于条件判断,forwhile 用于循环,breakcontinue 用于循环控制,switch 用于多路分支。

访问控制关键字

  • public, protected, private

在这里插入图片描述

访问控制关键字用于定义类成员的访问权限。

类和对象相关关键字

  • class, struct, union, this, new, delete, virtual, override, final, const_cast, dynamic_cast, reinterpret_cast, static_cast

在这里插入图片描述

类和对象相关关键字与面向对象编程相关。classstruct 用于定义类,union 定义联合体,this 指向当前对象,newdelete 用于动态内存管理,virtual 用于定义虚函数,overridefinal 用于 C++11 中的函数重写控制,类型转换关键字(如 static_cast)用于类型转换。

异常处理关键字

  • try, catch, throw, noexcept

在这里插入图片描述

异常处理关键字用于异常处理。

函数和作用域相关关键字

  • auto, extern, register, static, mutable, inline, const, volatile

在这里插入图片描述

函数和作用域相关关键字用于声明变量或函数的存储类别或行为。例如,static 声明静态存储周期,inline 用于内联函数,const 表示不可变,volatile 表示易变。

命名空间和预处理器关键字

  • namespace, using

在这里插入图片描述

  • namespace 用于定义命名空间,using 用于引入命名空间中的名称或者创建别名。

其他特殊用途关键字

  • sizeof, typedef, enum, template, typename, explicit, operator, true, false

在这里插入图片描述

sizeof 用于获取数据类型或对象大小,typedef 用于定义类型别名,enum 定义枚举,templatetypename 用于模板编程,explicit 防止隐式转换,operator 用于定义运算符重载。

C++11 及更高版本中新增的关键字

  • nullptr, constexpr, decltype, noexcept, static_assert, thread_local, alignas, alignof, char16_t, char32_t

在这里插入图片描述

nullptr 表示空指针,constexpr 用于编译时常量,decltype 用于推导类型,noexcept 指定不抛出异常,static_assert 用于编译时断言,thread_local 表示线程局部存储,alignasalignof 用于控制对齐,char16_tchar32_t 用于 Unicode 字符。

数据类型

在 C++ 中,数据类型是一个非常基本的概念,它定义了变量可以存储的数据种类,以及对这些数据可以执行的操作和表达式。C++ 提供了多种数据类型,主要可以分为以下几类:

1. 基本数据类型

基本数据类型是构建程序的基础,包括整型、浮点型、字符型和布尔型。

a) 整型(Integer Types)

在这里插入图片描述

整型用于存储整数值。它们分为几种不同的类型,主要基于存储的大小和范围:

  • int: 最常用的整型,大小通常是 16 位或 32 位。
  • short intshort: 通常是 16 位,用于存储较小的整数。
  • long intlong: 至少与 int 一样大,通常是 32 位或 64 位,用于较大的整数。
  • long long intlong long: 通常是 64 位,用于非常大的整数。
  • 无符号版本,如 unsigned intunsigned short,等等,只存储正值和零。
b) 浮点型(Floating-Point Types)

在这里插入图片描述

用于存储小数值,包括:

  • float: 单精度浮点类型。通常是 32 位。
  • double: 双精度浮点类型。通常是 64 位。
  • long double: 扩展精度浮点类型。大小和精度由实现决定。
c) 字符型(Character Types)

在这里插入图片描述

用于存储单个字符,如字母或数字:

  • char: 通常是 8 位,可以表示标准 ASCII 字符集。
  • wchar_t: 宽字符类型,用于存储扩展字符集。
  • char16_tchar32_t (C++11 引入): 用于表示 Unicode 字符。
d) 布尔型(Boolean Type)
  • bool: 用于表示真(true)或假(false)。

2. 派生数据类型

在这里插入图片描述

派生数据类型允许用户创建复杂类型,包括指针、数组、引用和函数类型。

  • 数组:由相同类型的元素构成的集合。
  • 指针:存储内存地址的变量。可以指向任何类型的数据。
  • 引用:另一个变量的别名。与指针相似,但使用和语法上更安全。
  • 函数:返回特定类型的子程序。

3. 用户定义数据类型

在这里插入图片描述

用户可以根据需求定义自己的数据类型。

结构体 struct: 将不同的数据类型组合成一个单元。

联合体 union: 允许在相同的内存位置存储不同类型的数据。

枚举 enum: 定义一组命名的整型常量。

4. Void 类型

  • 特殊的类型,表示没有值。主要用于指定没有返回值的函数。

5. 类型修饰符

在这里插入图片描述

  • const: 声明一个不可修改的变量。
  • volatile: 指示变量的值可能以程序未明确的方式被改变。
  • signedunsigned : 指定整型是否包含负值。

6. C++11 之后的类型

C++11 引入了几个新的类型,如 auto 用于自动类型推断,nullptr 为指针提供了一个标准的空值。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android源码设计模式解析与实战第2版笔记(一)

第一章 走向灵活软件之路 — 面向对象的六大原则 优化代码的第一步 — 单一职责原则 单一职责原则的英文名称是Single Responsibility Principle,缩写是SRP。 SRP:就一个类而言,应该仅有一个引起它变化的原因。 一个类中应该是一组相关性很…

SpringBoot操作Jedis

SpringBoot操作Jedis 1、pom依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://ma…

【机组】单元模块实验的综合调试与驻机键盘和液晶显示器的使用方式

​&#x1f308;个人主页&#xff1a;Sarapines Programmer&#x1f525; 系列专栏&#xff1a;《机组 | 模块单元实验》⏰诗赋清音&#xff1a;云生高巅梦远游&#xff0c; 星光点缀碧海愁。 山川深邃情难晤&#xff0c; 剑气凌云志自修。 目录 1. 综合实验的调试 1.1 实验…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Swiper容器组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之Swiper容器组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Swiper容器组件 滑块视图容器&#xff0c;提供子组件滑动轮播显示的能力。…

RHCE 给openlab搭建web网站

目录 网站需求&#xff1a; 一、准备工作 二、创建www.openlab.com 三、创建教学资料子网站www.openlab.com/data 四、创建学生信息子网站http://www.openlab.com/student/ 五、创建缴费子网站www.openlab.com/money 网站需求&#xff1a; 1.基于域名www.epenlab.com可以…

微信小程序(十九)组件通信(子传父)

注释很详细&#xff0c;直接上代码 上一篇 新增内容&#xff1a; 1.定义触发事件向父组件传输数据 2.父组件绑定绑定触发事件并获取数据 源码&#xff1a; myNav.wxml <view class"navigationBar custom-class" style"padding-top: {{test}}px;">&l…

让B端管理软件既美观又实用的解决方案来了

hello宝子们...我们是艾斯视觉擅长ui设计和前端开发10年经验&#xff01;希望我的分享能帮助到您&#xff01;如需帮助可以评论关注私信我们一起探讨&#xff01;致敬感谢感恩&#xff01; 让B端管理软件既美观又实用的解决方案来了 在当今数字化时代&#xff0c;B端管理软件已…

API网关-Apisix RPM包方式自动化安装配置教程

文章目录 前言一、简介1. etcd简介2. APISIX简介3. apisix-dashboard简介 二、Apisix安装教程1. 复制脚本2. 增加执行权限3. 执行脚本4. 浏览器访问5. 卸载Apisix 三、命令1. Apisix命令1.1 启动apisix服务1.2 停止apisix服务1.3 优雅地停止apisix服务1.4 重启apisix服务1.5 重…

docker部署常用命令

centos安装docker https://docs.docker.com/engine/install/centos/ 修改iptables&#xff08;重要&#xff01;&#xff01;&#xff01;&#xff09; step1:修改iptables配置vim /lib/systemd/system/docker.serviceExecStart/usr/bin/dockerd -H fd:// --containerd/run/…

CAD-autolisp(三)——文件、对话框

目录 一、文件操作1.1 写文件1.2 读文件 二、对话框DCL2.1 初识对话框2.2 常用对话框界面2.2.1 复选框、列表框2.2.2 下拉框2.2.3 文字输入框、单选点框 2.3 Lisp对dcl的驱动2.4 对话框按钮实现拾取 一、文件操作 1.1 写文件 代码示例(defun c:writefile();getfiled函数&…

用Visual Studio Code创建JavaScript运行环境【2024版】

用Visual Studio Code创建JavaScript运行环境 JavaScript 的历史 JavaScript 最初被称为 LiveScript&#xff0c;由 Netscape&#xff08;Netscape Communications Corporation&#xff0c;网景通信公司&#xff09;公司的布兰登艾奇&#xff08;Brendan Eich&#xff09;在 …

[C++开发 03_2/2 _ STL(185)]

知识点1&#xff1a;STL初始 概述&#xff1a; STL是标准模板库的意思&#xff0c;STL从广义上来讲分为&#xff1a;容器&#xff0c;算法&#xff0c;迭代器。 容器算法之间通过迭代器进行无缝连接。 知识点2&#xff1a;STL初始 2.1 STL诞生 C中面向对象的三大特性&#xff1…