初学C++——C++基础、变量、字面量、常量、数据类型、类型转换、变量命名规则、开发环境配置

news2025/1/12 1:50:56

文章目录

  • 简介
  • C ++语言的特性
  • C++ 开发环境配置
  • C++ 变量,字面量和常量
    • C++ 变量
      • 变量命名规则
    • C ++ 字面量
    • C ++ 常量
  • C++ 数据类型
    • C ++基本数据类型
    • 派生数据类型
  • C++ 类型转换
    • 隐式类型转换
    • C ++显式转换

简介

C ++是一种静态类型的,自由形式的(通常)编译的,多范例的,通用的基于C的中级编程语言。它是由Bjarne Stroustrup于1979年开发的

C ++语言的特性

  • 速度
    由于C ++是C的扩展版本,因此它的C部分非常底层。
    这极大地提高了Python和Java等高级语言无法提供的速度。

  • 静态类型
    由于C ++是一种静态类型的编程语言,因此它不允许编译器对数据类型进行假设。例如,10与“ 10”不同,必须明确声明。
    由于这些是在编译时确定的,因此有助于编译器在程序执行之前捕获错误和错误。

  • 多范式编程语言
    C ++支持至少7种不同的编程风格,并为开发人员提供了随意选择的自由。
    与Java不同,除非必要,否则不需要使用对象来解决所有任务。

  • 面向对象
    C ++支持面向对象的程序设计,该程序为程序提供了清晰的模块化结构。
    通过在C ++中使用它,可以通过创建对象将这些复杂的问题分成较小的集合。

  • 标准库(标准模板库-STL)
    可以使用C ++包含的标准库进一步扩展其使用。
    这些库包含有效的算法,可以在编写自己的项目时广泛使用这些算法。可以节省大量的编程工作

C++ 开发环境配置

C++ 开发环境配置

C++ 变量,字面量和常量

C++ 变量

变量是用于保存数据的容器(存储区)
为了表示存储区域,应该为每个变量赋予唯一的名称(标识符)。例如:

int num = 20;

在这里,num是int数据类型的变量,我们为其分配了一个整数值20

注:int数据类型表明变量只能容纳整数。同样,如果必须存储小数和指数,则可以使用double数据类型。

变量的值可以更改,因此名称为variable(变量)。

int num = 20;  //num 为 20
num = 50;	   //num 为 50

变量命名规则

  • 变量名只能是字母(A-Z,a-z)和数字(0-9)或者下划线(_)组成。

  • 变量名不能以数字开头,第一个字母必须是字母或者下划线开头。。

  • 变量名区分大小写。

  • 变量名称不能是关键字,以免冲突。例如,int是用于表示整数的关键字。

  • 变量名可以以下划线开头。但是,这不是一个好习惯。

注意:我们应该尝试给变量起有意义的名字。例如,first_name是比fn变量名更好。

C ++ 字面量

字面量是用于表示固定值的数据。可以直接在代码中使用。例如:1,2.5,‘c’ 等。

这里,1、2.5和“c”是字面量,因为不能给这些项赋不同的值。

这是C ++编程中不同字面量的列表。

  1. 整数字面量
    整数是没有任何小数或指数部分的数字字面量(与数字关联)。C编程中有三种类型的整数字面量:
  • 十进制(以10为底)

  • 八进制(以8为底)

  • 十六进制(以16为底)

例如:

十进制数: 0, -9, 22 etc
八进制数: 021, 077, 033 etc
十六进位制数: 0x7f, 0x2a, 0x521 etc

在C ++编程中,八进制以0开头,十六进制以0x开头。

  1. 浮点字面量
    浮点字面量是具有分数形式或指数形式的数字字面量。例如:
  • -2.0

  • 0.0000234

  • -0.22E-5

注意: E-5 = 10⁻⁵

  1. 字符字面量
    通过将单个字符括在单引号内来创建字符字面量。例如:'a','m','F','2','}'等。

  2. 转义符
    有时,在C ++编程中必须使用不能键入或具有特殊含义的字符。例如,换行符(回车),制表符,问号等。

转义符描述
\b退格(BS)
\f换页(FF)
\n换行(LF)
\r回车(CR
\t水平制表(HT)
\v垂直制表(VT)
\反斜杠
单引号字符
"双引号字符
?问号字
\0空字符(NULL)
  1. 字符串字面量
    字符串字面量是用双引号引起来的一系列字符。例如:
“good”字符串常量
“”空字符串常量
" "空格的字符串常量
“x”具有单个字符的字符串常量
“Earth is round\n”用换行符打印字符串

C ++ 常量

在C ++中,我们可以创建其值无法更改的变量。为此,我们使用const关键字来定义一个常量

const int LIGHT_SPEED = 299792458;
LIGHT_SPEED = 2500 // 错误! LIGHT_SPEED 是一个常量

使用了关键字const来声明名为LIGHT_SPEED的常量。如果尝试更改的值LIGHT_SPEED,则会抛出错误消息

常量与字面量的主要区别在于,常量是一个变量,但它被定义为不可变。常量在定义时必须初始化,并且其值不能在之后更改。
字面量则是直接在代码中出现的数据值,不具备变量的特性,不能作为左值使用。

C++ 数据类型

C ++基本数据类型

类型关键字大小
布尔型bool1字节
字符型char1字节
整型int4字节
浮点型float4字节
双浮点型double8字节
无类型void0字节
宽字符型wchar_t2字节
  1. C ++ int (整型)
  • int关键字用来表示整数。
  • 大小通常为4个字节。意思是,它可以存储从-2147483648 到 214748647的值。
int num = 90000;
  1. C ++float和double(浮点和双浮点型)
  • float和double用于存储浮点数(小数和指数)。
  • float的大小是4字节,double的大小是8字节。因此,double的精度是float的两倍。
float num = 99.99;
double num1 = 123.32213;

这两种数据类型也用于指数

double distance = 45E12    // 45E12 等于 45*10^12
  1. C ++ char(字符型)
  • 关键字char用于字符。
  • 大小是1个字节。
  • C ++中的字符用单引号’ '引起来。
char test = 'h';

在C ++中,整数值存储在char变量中,而不是字符本身

在C++中,当你将一个整数值赋给一个char类型的变量时,实际上存储的是这个整数值的二进制表示,因为char类型通常是一个字节,可以存储一个8位的整数值。如果打印这个char变量,你会看到它显示的是这个整数值对应的ASCII字符,这是因为在大多数环境中,char被当作字符类型来处理

char myChar = 65; // 65是大写字母A的ASCII值

在这个例子中,myChar实际上包含的是整数65的二进制表示,但当你打印它时,你会看到A,因为ASCII码将这个二进制表示解释为字符A
如果你想要直接访问存储的整数值,而不是它的ASCII字符表示,你可以强制将其转换为整数类型:

int intValue = static_cast<int>(myChar);

现在intValue将包含65。这种行为是因为整数和字符变量在内存中的存储方式不同,字符变量实际上存储的是代表字符的数字,而不是字符本身

  1. C ++ wchar_t (宽字符型)
  • 宽字符wchar_t类似于char数据类型,不同之处在于它的大小是2个字节而不是1个字节。
  • 它用于表示比char单个字符需要更多内存来表示它们的字符。
wchar_t test = L'ם'  // 存储希伯来语字符

注意引号前的字母L。

注意:在C ++ 11中还引入了另外两个固定大小的字符类型char16_t和char32_t。

  1. C ++ bool (布尔型)
  • bool数据类型有两个可能的值:true或false。
  • 布尔用于条件语句和循环
bool answer = false;
  1. C ++ void(无类型)
  • void关键字表示不存在数据。这意味着“没有”或“没有值”。

  • 使用函数和指针时,会使用到void。

注意:我们不能声明void类型的变量

派生数据类型

从基本数据类型派生的数据类型是派生类型。例如:数组,指针,函数类型,结构等。

C++ 类型转换

C ++允许将一种类型的数据转换为另一种类型的数据。这称为类型转换

C ++中有两种类型的类型转换。

  1. 隐式转换
  2. 显式转换(也称为强制类型转换)

隐式类型转换

由编译器自动完成的类型转换称为隐式类型转换。这种类型的转换也称为自动转换
举例:

  1. 从int转换为double
// 隐式类型转换的工作方式

#include <iostream>
using namespace std;

int main() {
   // 为num_int分配一个int值
   int num_int = 9;

   // 声明一个double变量
   double num_double;
 
   // 隐式转换
   // 将int值分配给double变量
   num_double = num_int;

   cout << "num_int = " << num_int << endl;
   cout << "num_double = " << num_double << endl;

   return 0;
}

输出结果

num_int = 9
num_double = 9

在程序中,已经将int数据分配给double变量。

num_double = num_int;

此处,在将int值分配给num_double变量之前,它会由编译器自动转换为double。 这是隐式类型转换的示例。

  1. 自动从double转换为int
//隐式类型转换的工作方式

#include <iostream>
using namespace std;

int main() {

   int num_int;
   double num_double = 9.99;

   // 隐式转换
   // 将一个double值赋给一个int变量
   num_int = num_double;

   cout << "num_int = " << num_int << endl;
   cout << "num_double = " << num_double << endl;

   return 0;
}

输出结果
在这里插入图片描述

在程序中,我们已将double数据分配给int变量。

num_double = num_int;

在此,将double值分配给num_int变量之前,编译器会自动将其转换为int。 这也是隐式类型转换的示例。

注意:由于int不能有小数部分,因此在上面的示例中,小数点后的数字被截断了。

C ++显式转换

当用户手动将数据从一种类型更改为另一种类型时,这称为显式转换。这种类型的转换也称为强制类型转换。

可以使用三种主要方法在C ++中使用显式转换。他们是:

  1. C型类型强制转换(也称为强制转换符号)
  • C 风格转换
    顾名思义,这种类型的转换受到C编程语言的青睐。也称为强制转换表示法。
    语法是:
(data_type)expression;

比如

	//C风格转换
	//初始化int变量
	int num_int = 25;

	//声明double变量
	double num_double;

	//从int转换为double

	num_double =(double) num_int;
  1. 函数表示法(也称为老式c++风格的类型转换)
  • 函数样式转换
    我们还可以使用类似符号的函数将数据从一种类型转换为另一种类型。

这种类型的语法是:

data_type(expression);

比如

	//函数样式转换
	int num_int = 25;

	//声明double变量
	double num_double;

	//从int转换为double
	num_double = double(num_int);
  1. 类型转换运算符
//类型转换
	  // 初始化double变量
	double num_double = 3.56;
	qDebug()<< "num_double = " << num_double ;

	// 从double到int的C风格转换
	int num_int1 = (int)num_double;
	qDebug() << "num_int1   = " << num_int1 ;

	// 从double到int的函数样式转换
	int num_int2 = int(num_double);
	qDebug() << "num_int2   = " << num_int2;

输出
在这里插入图片描述

使用C风格类型转换和函数样式转换进行类型转换,并显示结果。由于它们执行相同的任务,因此两者都给我们相同的输出。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

css浮动(float)

浮动&#xff08;Float&#xff09; 在CSS中是一个重要的布局技术&#xff0c;它允许元素向左或向右移动&#xff0c;其周围的元素会重新排列。当一个元素被设置为浮动时&#xff0c;它会脱离正常的文档流&#xff0c;这意味着它不再占据原本在文档流中的空间&#xff0c;而会尽…

会声会影下载免费中文版 会声会影2023破解 会声会影中文汉化补丁包 会声会影永久激活版序列号免费 会声会影安装使用教程

会声会影是加拿大Corel公司制作的一款功能强大的视频编辑软件&#xff0c;正版英文名&#xff1a;Corel VideoStudio&#xff0c;具有图像抓取和编修功能&#xff0c;可以抓取&#xff0c;转换MV、DV、V8、TV和实时记录抓取画面文件&#xff0c;并提供有超过100 多种的编制功能…

Atlassian 从历史传奇到云端创新,背后的秘密

前言 通过过去在职企业和现服务的咨询客户案例&#xff0c;我深刻领悟到团队协作、项目管理和变革管理的重要性。这种全方位的视角促使我深入研究了 Atlassian Cloud 系列产品与解决方案。凭借对协作的深刻理解和丰富的 Jira 项目管理实践&#xff0c;我不断探索如何以项目管理…

AVL Cruise与Simulink联合仿真(通过MATLAB DLL方式)

最近毕业设计需要用到AVL Cruise与Simulink进行联合仿真&#xff0c;分析汽车模型的经济性。下面介绍一下我所知的AVL Cruise与Simulink联合仿真的几种方式&#xff0c;它们各自的优缺点&#xff0c;以及DLL方式联合仿真的具体配置过程。我这里用的MATLAB软件版本是2021a&#…

数字人捕捉、建模与合成

在感知系统中&#xff0c;我们与外部合作者一起创建逼真的 3D 人类&#xff0c;其行为可以像虚拟世界中的真实人类一样。这项工作在今天有许多实际应用&#xff0c;并且对于元宇宙的未来至关重要。但是&#xff0c;在感知系统中&#xff0c;我们的目标是科学的——通过重现人类…

汽车灯罩一般都是用什么材质做的?汽车车灯的灯罩如果破损破裂破洞了要怎么修复?

汽车灯罩一般都是用什么材质做的&#xff1f; 汽车灯罩一般使用的主要材质是聚碳酸酯&#xff08;PC&#xff09;和丙烯酸酯&#xff08;PMMA&#xff09;这两种塑料。这两种材料具有良好的透明性、耐候性和耐冲击性&#xff0c;因此非常适合用于汽车灯罩的制造。 聚碳酸酯&am…

C#中实现DataGridView数据的优雅Excel之旅(EPPlus)

DataGridView效果图&#xff1a; EXCEL效果图: 代码如下&#xff1a; 首先要引入EPPlus包 可以使用命令行来安装 Install-Package EPPlus 也可以使用NUGet搜索EPPlus来安装 public Homes(){InitializeComponent();ExcelPackage.LicenseContext OfficeOpenXml.LicenseContext…

如何快速优雅的免费申请和搭建属于自己的服务器

今天来讲一下如何快速优雅的搭建属于自己的服务器&#xff0c;我们以阿里云的云服务器为例&#xff0c;新用户一般是有三个月使用期限。 首先我们进入官网&#xff0c;选择云服务器ecs 链接直达&#xff1a;https://cn.aliyun.com 打开网页后&#xff0c;往下滑&#xff0c;然…

PyPI 与 GitHub 的双因素认证 | 2FA 配置指南

唠唠闲话 最近登录 GitHub 一直提示设置双重验证。除此之外&#xff0c;开发 Python 包常用的平台—— PyPI &#xff0c;也宣布从今年开始强制启用双因素认证&#xff08;2FA&#xff09;。这一变化虽然在提高安全性方面起到了积极作用&#xff0c;但也给日常工作带来了麻烦。…

如何利用AI提高内容生产效率

目录 一、自动化内容生成 二、内容分发与推广 三、内容分析与优化 图片来源网络&#xff0c;侵权联系可删 一、自动化内容生成 随着AI技术的飞速发展&#xff0c;自动化内容生成已经成为提高内容生产效率的重要手段。AI可以通过自然语言处理&#xff08;NLP&#xff09;、机…

ESPN 即将登陆 Disney Plus 应用

震撼消息&#xff01;迪士尼CEO鲍勃艾格今日宣布&#xff0c;ESPN板块即将推出精选现场游戏和工作室节目&#xff0c;让所有美国订户目瞪口呆&#xff01; 鲍勃艾格表示&#xff1a;“这是将ESPN带给Disney观众的第一步&#xff0c;我们准备在2025年秋季推出增强型独立ESPN流媒…

代码随想录算法训练营第36期DAY14

DAY14&#xff08;周二&#xff09; 二叉树的递归遍历 144二叉树的前序遍历 过了。 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullp…

卡尔曼滤波实战

入门内容 假如有个超声波&#xff0c;它传回的数据是这样的&#xff0c;这样的数据是用不了的 我们想要的是稳定的数据 此时我们引入滤波&#xff0c;把里面的噪声去掉&#xff0c;使得数据更平滑 适用系统&#xff1a; 符合两个特质&#xff1a;线性和高斯。 也叫线性高斯…

PyCharm怎么安装Comate与使用示范

目录 简单介绍Comate 安装步骤详解 Comate使用示范详解 使用总结 简单介绍Comate Baidu Comate智能编码助手是一款基于文心大模型打造的编码辅助工具&#xff0c;具备多重优势&#xff0c;包括代码智能、应用场景丰富、创造价值高、广泛应用等。它能帮助开发者提升编码效率…

AR人脸道具SDK解决方案,实现道具与人脸的自然融合

AR人脸道具SDK解决方案&#xff0c;实现道具与人脸的自然融合美摄科技以其卓越的技术实力和创新能力&#xff0c;为企业带来了全新的AR人脸道具SDK解决方案。这一解决方案将为企业打开全新的市场机会&#xff0c;为用户带来前所未有的互动体验。 颠覆传统&#xff0c;开启AR人…

【Debug日记】albumentations包安装失败解决方案

直接pip安装pip install albumentations 报错&#xff1a; ERROR: Command errored out with exit status 1:command: D:\anaconda3\envs\pytorch\python.exe D:\anaconda3\envs\pytorch\lib\site-packages\pip\_vendor\pep517\in_process\_in_process.py build_wheel C:\Users…

2024年营销技术远景图发布:14,106种营销技术产品(同比增长27.8%)

每年五月的第一个星期二&#xff08;美国东部时间&#xff09;&#xff0c;Scott Brinker设定为Martech Day&#xff0c;以此来庆祝营销技术行业和所有有才华的营销技术专家和营销运营专业人士的工作&#xff0c;「为你们在开拓这片荒野所做的一切而欢呼&#xff01;」 同时&a…

24年考研管综199真题PDF共18页

整理了24年考研管综199真题PDF共18页&#xff0c;包含问题求解&#xff0c;条件充分性判断&#xff0c;逻辑推理&#xff0c;写作&#xff0c;几个部分&#xff0c;希望对大家有所帮助 一、问题求解 这部分包含15道小题&#xff0c;每题3分&#xff0c;共45分。题目类型为选择…

SpringBoot使用AOP注解记录操作日志

一、前言 日志&#xff1a;指系统所指定对象的某些操作和其操作结果按时间有序的集合。 操作日志&#xff1a;主要是对某个对象进行新增操作或者修改操作后记录下这个新增或者修改&#xff0c;操作日志要求可读性比较强。比如张三在某个时间下了订单买了某个商品&#xff01; …

CSS选择器(基本+复合+伪类)

目录 CSS选择器 基本选择器 标签选择器&#xff1a;使用标签名作为选择器->选中同名标签设置样式 类选择器&#xff1a;给类选择器定义一个名字.类名&#xff0c;并给标签添加class"类名" id选择器&#xff1a;跟类选择器非常相似&#xff0c;给id选择器定义…