【C++入门语法】1.变量的世界

news2025/1/16 21:47:18


欢迎来到C++的世界!在这篇文章中,我们将一起探索C++编程中的基本概念——变量。变量是程序设计中非常重要的一部分,它们是存储数据的容器,让我们的程序能够记住和操作这些信息。

什么是变量?

变量是一个标识符,用于存储数据值。你可以把它想象成一个带有标签的盒子,这个标签就是变量名,盒子里的内容就是变量的值。在C++中,每个变量都有特定的数据类型,这决定了变量可以存储的数据种类和大小。

变量命名规则

在C++中,给变量命名有一些基本规则需要遵守:

  1. 以字母或下划线开头:变量名必须以字母(a-z, A-Z)或下划线(_)开始。
  2. 包含字母、数字和下划线:变量名可以包含字母、数字和下划线,但不能包含空格、标点符号或特殊字符。
  3. 区分大小写:C++是大小写敏感的,所以myVariablemyvariable是两个不同的变量。
  4. 不要使用C++关键字:避免使用C++的保留关键字作为变量名,如int, float, char等。

数据类型

C++支持多种数据类型,每种类型都有其特定的用途和存储大小。以下是一些基本的数据类型:

  • 整型(Integer Types):如int(整数)、short(短整型)、long(长整型)等。
  • 浮点型(Floating-point Types):如float(单精度浮点)、double(双精度浮点)等。
  • 字符型(Character Types):如char(字符)。
  • 布尔型(Boolean Type):bool,只有两个值:true和false。

各种数据类型的范围表:

数据类型范围/大小
booltruefalse
char-128 到 127 (有符号), 0 到 255 (无符号)
signed char-128 到 127
unsigned char0 到 255
shortshort int-32,768 到 32,767 (有符号), 0 到 65,535 (无符号)
signed shortsigned short int-32,768 到 32,767
unsigned shortunsigned short int0 到 65,535
intinteger-2,147,483,648 到 2,147,483,647 (有符号), 0 到 4,294,967,295 (无符号)
signedsigned int-2,147,483,648 到 2,147,483,647
unsignedunsigned int0 到 4,294,967,295
longlong int-2,147,483,648 到 2,147,483,647 (32位系统), -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 (64位系统), 0 到 4,294,967,295 (无符号32位系统), 0 到 18,446,744,073,709,551,615 (无符号64位系统)
signed longsigned long int-2,147,483,648 到 2,147,483,647 (32位系统), -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 (64位系统)
unsigned longunsigned long int0 到 4,294,967,295 (32位系统), 0 到 18,446,744,073,709,551,615 (64位系统)
long longlong long int-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 (有符号), 0 到 18,446,744,073,709,551,615 (无符号)
signed long longsigned long long int-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
unsigned long longunsigned long long int0 到 18,446,744,073,709,551,615
float约 ±1.2E-38 到 ±3.4E+38 (6-9位有效数字)
double约 ±2.3E-308 到 ±1.8E+308 (15位有效数字)
long double扩展双精度浮点数, 范围和精度取决于系统和编译器

变量的作用域和生命周期

变量的作用域决定了变量在程序中的哪些部分可见。局部变量(在函数内部定义)的作用域仅限于该函数内部。全局变量(在函数外部定义)的作用域则是整个程序。

变量的生命周期指的是变量的存在时间。局部变量的生命周期从它们被创建(进入其作用域)开始,到它们被销毁(离开其作用域)结束。全局变量的生命周期是整个程序的运行时间。

C++变量注意事项

  1. 变量声明和定义

    • 在C++中,变量的声明和定义是相似的,但在一些上下文中有所不同。声明只是告诉编译器变量的存在和类型,而定义还包括为变量分配内存。
  2. 变量作用域

    • 变量的作用域决定了其可见性和生命周期。局部变量在声明它的代码块内可见,并在代码块结束时销毁。全局变量在整个程序中都可见,并在程序开始时创建,结束时销毁。
  3. 变量存储类别

    • C++中的变量可以具有不同的存储类别,如自动(auto)、静态(static)、外部(extern)和寄存器(register)。这些类别决定了变量的生命周期和存储方式。
  4. 变量初始化

    • 局部变量在使用前必须初始化,否则它们的值是不确定的。全局变量和静态变量会自动初始化为0。
  5. 命名约定

    • 变量名应清晰、描述性,并且遵循一致的命名约定。常见的命名约定包括驼峰命名法(camelCase)和下划线命名法(snake_case)。
  6. 类型匹配

    • 变量应声明为适当的类型,以匹配它们将存储的数据。错误的类型选择可能导致数据丢失、内存浪费或意外的行为。
  7. 避免命名冲突

    • 避免使用C++关键字和已经存在的函数、类名等作为变量名,以减少命名冲突和潜在的编译错误。
  8. 作用域解析运算符

    • 在嵌套作用域中,如果局部变量和全局变量同名,可以使用作用域解析运算符(::)来明确指定要使用的变量。
  9. 常量变量

    • 使用const关键字来声明常量变量,这些变量的值在初始化后不能被修改。这有助于提高代码的可读性和可维护性。
  10. 避免使用魔术数字

    • 尽量避免在代码中使用硬编码的“魔术数字”,而是使用具有描述性名称的常量来替代这些数字。
  11. 变量的可修改性

    • 在函数内部,默认情况下变量是可修改的(非const)。如果需要保证变量不被修改,应使用const关键字。
  12. 变量的内存管理

    • 对于动态分配的内存(如使用new关键字),务必使用delete来释放内存,以防止内存泄漏。对于数组,应使用new[]delete[]来匹配分配和释放。
  13. 注意变量的生命周期

    • 了解变量的生命周期是很重要的,尤其是在涉及动态分配内存、资源管理和并发编程时。确保在变量不再需要时正确释放其占用的资源。

通过遵循这些注意事项,您可以编写出更加健壮、可读和可维护的C++代码。```

这段Markdown代码可以直接复制到任何支持Markdown的文本编辑器或预览器中,以便查看或分享。

变量的赋值和初始化

在C++中,你可以使用赋值运算符(=)来给变量赋值。赋值运算符的左边是变量名,右边是要赋给该变量的值。

int myInt;    // 声明一个整数变量,但未初始化  
myInt = 10;   // 给变量赋值为10

你也可以在声明变量的同时初始化它:

下面是一个简单的C++程序,演示了如何使用变量:

#include <iostream>
int main() {
// 声明并初始化变量
int age = 25;
float salary = 5000.00;
char gender = 'M';
bool isEmployee = true;
// 输出变量的值
std::cout << "Age: " << age << std::endl;
std::cout << "Salary: " << salary << std::endl;
std::cout << "Gender: " << gender << std::endl;
std::cout << "Is Employee? " << (isEmployee ? "Yes" : "No") << std::endl;
return 0;
}

这个程序定义了几个不同类型的变量,并输出了它们的值。注意,在输出布尔值时,我们使用了三元运算符(? :)来将true和false转换为更易于理解的字符串。

通过这篇文章,你应该对C++中的变量有了初步的了解。如果想学习更多关于ACM算法竞赛、蓝桥杯大赛等算法竞赛相关知识,欢迎拜访www.starrycoding.com

StarryCoding是由我本人创办的计算机综合学习平台,我希望打造一个更加适合CS大学生学习与成长的高性价比平台,为大家提供更好的一站式教育服务。适用对象广泛
适用对象广泛
在这里插入图片描述
内容紧贴考纲,每节课约1.5小时高密度知识
在这里插入图片描述
广受好评,学习氛围浓厚,平等互助,拒绝歧视与绑架
在这里插入图片描述
视频、习题、文档,想学就学
没错,在学习算法的时候你甚至可以看V。
最最最最最最最最重要的是,由于课程的准备、录制、平台(前后端和评测机)的开发、推广都是由我一人完成,所以成本压的非常非常低,算法基础课仅售39元。
欢迎加入StarryCoding官方用户Q群:746470220(官网www.starrycoding.com)
悄悄说:StarryCoding平台还有算法中级课(可以自行了解)。

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

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

相关文章

Web前端开发

一、概述 1.1 什么是HTML、CSS&#xff1f; 二、HTML 2.1 HTML快速入门 2.2 基础标签和样式 2.2.1 标题 &#xff08;1&#xff09;标题排版 输入&#xff01;加回车&#xff0c;直接生成HTML基本结构标签 。 <!-- 声明当前文档类型 --> <!DOCTYPE html> &l…

windows@命令行映射磁盘驱动器若干方法@开机自动映射网络磁盘

文章目录 windows映射网络磁盘驱动器资源管理器中GUI方式创建命令行方式创建命令行列出驱动器列表删除取消映射持久化配置映射&#x1f47a;记住凭证 FAQ开机自启登录系统后自动挂载&#x1f47a;[以alist webdav 挂载为例]分析对策延迟挂载&#x1f47a;Note 访问已经挂载网络…

【牛客面试必刷TOP101】Day19.BM24 二叉树的中序遍历和BM26 求二叉树的层序遍历

作者简介&#xff1a;大家好&#xff0c;我是未央&#xff1b; 博客首页&#xff1a;未央.303 系列专栏&#xff1a;牛客面试必刷TOP101 每日一句&#xff1a;人的一生&#xff0c;可以有所作为的时机只有一次&#xff0c;那就是现在&#xff01;&#xff01;&#xff01;&…

2024年【陕西省安全员A证】考试试卷及陕西省安全员A证模拟考试题库

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 陕西省安全员A证考试试卷根据新陕西省安全员A证考试大纲要求&#xff0c;安全生产模拟考试一点通将陕西省安全员A证模拟考试试题进行汇编&#xff0c;组成一套陕西省安全员A证全真模拟考试试题&#xff0c;学员可通过…

【JAVA WEB】JavaScript(WebAPI)--DOM基本概念 获取元素 点击事件 键盘事件

目录 什么是WebAPI DOM的基本概念 DOM是什么 DOM树 获取元素 querySelector querySelectorAll 事件 事件初识 基本概念 事件三要素 点击事件 键盘事件 什么是WebAPI 前端学习的 JS 分成三个大的部分 ECMAScript&#xff1a;基础语法部分DOM API&#xff1a;操作…

算法刷题:快乐数

快乐数 .习题链接题目题目解析初始值算法原理我的答案 . 习题链接 快乐数 题目 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为&#xff1a; 对于一个正整数&#xff0c;每一次将该数替换为它每个位置上的数字的平方和。 然后重复这个过程直到这个数变为 1…

数学实验第三版(主编:李继成 赵小艳)课后练习答案(九)(1)(2)

实验九&#xff1a;线性函数极值求解 练习一 1.求解线性规划问题&#xff1a; &#xff08;1&#xff09;max z3,s.t. clc;clear; %采用软件解法 c[-3,-1]; a[-1,1;1,-2;3,2]; b[2;2;14]; [x,min]linprog(c,a,b)找到最优解。 x 4 1 min -13 题上要求的是最大值&#…

二叉树的垂直遍历

1.题目 这道题是2024-2-13的签到题&#xff0c;题目难度为困难。 考察的知识点是DFS算法和自定义排序。 题目链接&#xff1a;二叉树的垂直遍历 给你二叉树的根结点 root &#xff0c;请你设计算法计算二叉树的 垂序遍历 序列。 对位于 (row, col) 的每个结点而言&#xff…

Spark编程实验六:Spark机器学习库MLlib编程

目录 一、目的与要求 二、实验内容 三、实验步骤 1、数据导入 2、进行主成分分析&#xff08;PCA&#xff09; 3、训练分类模型并预测居民收入 4、超参数调优 四、结果分析与实验体会 一、目的与要求 1、通过实验掌握基本的MLLib编程方法&#xff1b; 2、掌握用MLLib…

软件实例分享,宠物店兽医电子处方开单系统软件教程

软件实例分享&#xff0c;宠物店兽医电子处方开单系统软件教程 一、软件教程问答 以下教程以 佳易王宠物店兽医电子处方软件V16.0为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 问&#xff1a;宠物医院电子处方单子使用的纸张大小是多少&…

19 删除链表的倒数第 N 个结点

19. 删除链表的倒数第 N 个结点 中等 相关标签 相关企业 提示 给你一个链表&#xff0c;删除链表的倒数第 n 个结点&#xff0c;并且返回链表的头结点。 这段代码使用了双指针的方法&#xff0c;其中一个指针先走 n 步&#xff0c;然后两个指针一起走&#xff0c;直到第一…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之LoadingProgress组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之LoadingProgress组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、LoadingProgress组件 用于显示加载动效的组件。 子组件 无 接口 L…

【Linux学习】生产者-消费者模型

目录 22.1 什么是生产者-消费者模型 22.2 为什么要用生产者-消费者模型? 22.3 生产者-消费者模型的特点 22.4 BlockingQueue实现生产者-消费者模型 22.4.1 实现阻塞队列BlockQueue 1) 添加一个容器来存放数据 2)加入判断Blocking Queue情况的成员函数 3)实现push和pop方法 4)完…

使用word2vec+tensorflow自然语言处理NLP

目录 介绍&#xff1a; 搭建上下文或预测目标词来学习词向量 建模1&#xff1a; 建模2&#xff1a; 预测&#xff1a; 介绍&#xff1a; Word2Vec是一种用于将文本转换为向量表示的技术。它是由谷歌团队于2013年提出的一种神经网络模型。Word2Vec可以将单词表示为高维空间…

JAVA-多进程开发-创建等待进程

前言 在项目中&#xff0c;为了实现“并发编程”&#xff08;同时执行多个任务&#xff09;&#xff0c;就引入了“多进程编程”&#xff0c;把一个很大的任务&#xff0c;拆分成若干个很小的任务&#xff0c;创建多个进程&#xff0c;每个进程分别负责其中的一部分任务。 这也…

Java实现中学生家校互联系统 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 学生管理模块2.2 课堂表现模块2.3 考试成绩模块2.4 家校留言模块2.5 校园通知模块 三、系统设计3.1 用例设计3.2 实体类设计3.2.1 课堂表现实体类设计3.2.2 考试成绩实体类设计3.2.3 家校留言实体类设计3.2.4 校园通知实…

虚拟人专题报告:虚拟人深度产业分析报告

今天分享的是虚拟人系列深度研究报告&#xff1a;《虚拟人专题报告&#xff1a;虚拟人深度产业分析报告》。 &#xff08;报告出品方&#xff1a;Q量子位&#xff09; 报告共计&#xff1a;18页 技术背景 虚拟数字人指存在于非物理世界中&#xff0c;由计算机图形学、图形渲…

【Vue】工程化开发脚手架Vue CLI

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;Vue⛺️稳重求进&#xff0c;晒太阳 工程化开发&脚手架Vue CLI 基本介绍 Vue Cli是Vue官方提供的一个全局命令工具 可以帮助我们快速创建一个开发Vue项目的标准化基础架子【集成了we…

【小沐学GIS】基于C++QT绘制三维数字地球Earth(OpenGL)

&#x1f37a;三维数字地球系列相关文章如下&#x1f37a;&#xff1a;1【小沐学GIS】基于C绘制三维数字地球Earth&#xff08;456:OpenGL、glfw、glut&#xff09;第一期2【小沐学GIS】基于C绘制三维数字地球Earth&#xff08;456:OpenGL、glfw、glut&#xff09;第二期3【小沐…

四、OpenAI之文本生成模型

文本生成模型 OpenAI的文本生成模型(也叫做生成预训练的转换器(Generative pre-trained transformers)或大语言模型)已经被训练成可以理解自然语言、代码和图片的模型。模型提供文本的输出作为输入的响应。对这些模型的输入内容也被称作“提示词”。设计提示词的本质是你如何对…