C++学习笔记-变量类型

news2024/12/28 5:45:34

变量为我们提供了程序可以操作的命名存储。 C ++中的每个变量都有一个特定的类型,它决定了变量内存的大小和布局; 可存储在该内存中的值范围; 以及可以应用于变量的操作集。

变量的名称可以由字母,数字和下划线字符组成。 它必须以字母或下划线开头。 大写和小写字母是不同的,因为C ++区分大小写 -

类型描述
bool存储值 true 或 false。
char通常是一个字符(八位)。这是一个整数类型。
int对机器而言,整数的最自然的大小。
float单精度浮点值。单精度是这样的格式,1位符号,8位指数,23位小数。
double双精度浮点值。双精度是1位符号,11位指数,52位小数。
void表示类型的缺失。
wchar_t宽字符类型。

C ++还允许定义各种其他类型的变量,我们将在后续笔记中介绍它们,如Enumeration, Pointer, Array, Reference, Data structures,和Classes 。

以下部分将介绍如何定义,声明和使用各种类型的变量。

C ++中的变量定义

变量定义就是告诉编译器在何处创建变量的存储,以及如何创建变量的存储。
在这里插入图片描述变量定义指定一个数据类型,并包含了该类型的一个或多个变量的列表,如下所示:

type variable_list;

这里, type必须是有效的C ++数据类型,包括char,w_char,int,float,double,bool或任何用户定义的对象等, variable_list可以包含一个或多个用逗号分隔的标识符名称。 这里显示了一些有效的声明 -

int    i, j, k;
char   c, ch;
float  f, salary;
double d;

线int i, j, k; 声明并定义变量i,j和k; 它指示编译器创建名为i,j和k的int类型的变量。

变量可以在其声明中初始化(分配初始值)。 初始化程序包含一个等号,后跟一个常量表达式,如下所示 -

type variable_name = value;

一些例子是 -

extern int d = 3, f = 5;    // declaration of d and f. 
int d = 3, f = 5;           // definition and initializing d and f. 
byte z = 22;                // definition and initializes z. 
char x = 'x';               // the variable x has the value 'x'.

对于没有初始化程序的定义:具有静态存储持续时间的变量用NULL隐式初始化(​​所有字节的值都为0); 所有其他变量的初始值未定义。

C ++中的变量声明

变量声明为编译器提供了保证,即存在一个具有给定类型和名称的变量,以便编译器继续进行进一步编译,而无需完整的变量详细信息。 变量声明仅在编译时有意义,编译器在链接程序时需要实际的变量定义。

当使用多个文件并在链接程序时可用的其中一个文件中定义变量时,变量声明很有用。 将使用extern关键字在任何地方声明变量。 虽然可以在C ++程序中多次声明变量,但它只能在文件,函数或代码块中定义一次。
例子 (Example)

尝试以下示例,其中变量已在顶部声明,但已在主函数内定义 -

#include <iostream>
using namespace std;
// Variable declaration:
extern int a, b;
extern int c;
extern float f;
int main () {
   // Variable definition:
   int a, b;
   int c;
   float f;
   // actual initialization
   a = 10;
   b = 20;
   c = a + b;
   cout << c << endl ;
   f = 70.0/3.0;
   cout << f << endl ;
   return 0;
}

编译并执行上述代码时,会产生以下结果 -

30
23.3333

同样的概念适用于函数声明,其中在声明时提供函数名称,并且可以在其他任何位置给出其实际定义。 例如 -

// function declaration
int func();
int main() {
   // function call
   int i = func();
}
// function definition
int func() {
   return 0;
}

左值和右值

C ++中有两种表达式 -

  • lvalue - 引用内存位置的表达式称为“左值”表达式。 左值可以显示为赋值的左侧或右侧。

  • rvalue - 术语rvalue是指存储在内存中某个地址的数据值。 rvalue是一个不能赋值给它的表达式,这意味着rvalue可能出现在赋值的右边但不是左边。

变量是左值,因此可能出现在赋值的左侧。 数字文字是右值,因此可能无法分配,也不能出现在左侧。 以下是有效的声明 -

int g = 20;

但以下不是有效的语句,会产生编译时错误 -

10 = 20;

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

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

相关文章

【C语言每日一题】——倒置字符串

【C语言每日一题】——倒置字符串&#x1f60e;前言&#x1f64c;倒置字符串&#x1f64c;总结撒花&#x1f49e;&#x1f60e;博客昵称&#xff1a;博客小梦 &#x1f60a;最喜欢的座右铭&#xff1a;全神贯注的上吧&#xff01;&#xff01;&#xff01; &#x1f60a;作者简…

基于蜣螂算法改进的LSTM分类算法-附代码

基于蜣螂算法改进的LSTM分类算法 文章目录基于蜣螂算法改进的LSTM分类算法1.数据集2.LSTM模型3.基于蜣螂算法优化的RF4.测试结果5.Matlab代码摘要&#xff1a;为了提高LSTM数据的分类预测准确率&#xff0c;对LSTM中的参数利用蜣螂搜索算法进行优化。1.数据集 数据的来源是 UC…

让我们,从头到尾,通透I/O模型

什么是IO 一句话总结 IO就是内存和硬盘的输入输出 I/O 其实就是 input 和 output 的缩写&#xff0c;即输入/输出。 那输入输出啥呢&#xff1f; 比如我们用键盘来敲代码其实就是输入&#xff0c;那显示器显示图案就是输出&#xff0c;这其实就是 I/O。 而我们时常关心的磁盘…

网络层重点协议之IP协议(IPv4)

网络层的作用就是来路由的选择&#xff0c;规划传输的路径&#xff0c;其中网络层的重点协议就是IP协议。4位版本号版本号的取值只有4和64位首部长度描述了IP报头有多长&#xff0c;报头中有一个选项部分&#xff0c;是变长的&#xff0c;是可有可无的部分&#xff0c;所以IP报…

【python百炼成魔】python之列表详解

文章目录一. 列表的概念1.1 列表是什么&#xff1f;1.2 为什么要使用列表&#xff1f;1.3 列表的定义二. 列表的增删改查操作2.1 列表的读取2.2 列表的切片2.3 列表的查询操作2.3.1 not in ,in 表达式2.3.2 列表元素遍历2.4 列表元素的增加操作2.4.1 append()的相关用法2.4.2 e…

Webpack(应用一:基本使用,只需六步骤)

前言 上一篇文章已经说明了webpack的定义以及需求 本偏文章主要讲解webpack的基本使用 tips&#xff1a;现在以vscode编辑器来展示&#xff0c;只需要几个步骤就可以实现webpack的基本使用。 一、首先要安装node.js 1、不会安装node.js的&#xff0c;可以在网上自己找教程来…

Java:博客系统,实现加盐加密,分页,草稿箱,定时发布

文章目录1. 项目概述2. 准备工作2.1 数据库表格代码2.2 前端代码2.3 配置文件3. 准备项目结构3.1 拷贝前端模板3.2 定义实体类3.3 定义mapper接口和 xml 文件3.4 创建其他包4. 统一数据返回4.1 Result 类4.2 统一数据格式5. 注册5.1 逻辑5.2 验证数据规范性5.3 实现注册5.4 前端…

Teradata与中国市场官宣“分手”!国产数据库准备好了吗?

2月15日&#xff0c;西方的情人节刚刚过去一天&#xff0c;国内IT行业就爆出一个大瓜。 继Adobe、甲骨文、Tableau、Salesforce之后&#xff0c;又一个IT巨头要撤离中国市场。 Teradata天睿公司官宣与中国市场“分手”&#xff0c;结束在中国的直接运营。目前&#xff0c;多家…

记录--TS类型写不好?一起来训练提升吧!

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 前期准备 本篇文章的编写目的是为了提升TS类型的书写质量&#xff0c;高质量的类型可以提高项目的可维护性并避免一些潜在的漏洞; 在学习本篇之前需要有一定的TS基础知识&#xff0c;在此基础上可以更…

wpgarlic:一款功能强大的WordPress插件模糊测试工具

关于wpgarlic wpgarlic是一款功能强大的WordPress插件模糊测试工具&#xff0c;该工具可以帮助广大研究人员查找WordPress插件漏洞。目前为止&#xff0c;该工具已经成功在大约1500万个网站上找出了140多个WordPress插件漏洞。 考虑到模糊测试工具的运行机制&#xff0c;即模…

mtb10_Presentations_tableau Animation(pages) to pdf to png or Animation

All Tableau authors are essentially storytellers. Analyzing data is more than just puzzle- solving; it is a search for a story that will make a difference. Topics can range from Airbnb爱彼迎(美国短租平台) to the Zika virus[ˈziːkə ˈvaɪrəs]寨卡病毒, an…

Java之滑动窗口详解

目录 一.滑动窗口 1.什么滑动窗口 2.滑动窗口的三要素 二.找到字符串中所有字母异位词 1.题目描述 2.问题分析 3.代码实现 三.字符串的排列 1.题目描述 2.问题分析 3.代码实现 四.考试的最大困扰度 1.题目描述 2.问题分析 3.代码实现 五.替换后的最长重复字符 …

git命令行推送本地分支到远程仓库

之前说过Git与IDEA强强联合&#xff08;HTTPS协议连接&#xff09;那么如何使用命令行来推送代码呢&#xff1f; 如下图所示为一个基于layui的前端代码&#xff1a; 目录工作区文件&#xff1a; 本地内容就是将这些内容推送到远程仓库 首先使用git命令初始化git本地仓库&…

阿里巴巴测试岗,3面都过了,到头来却因为这个原因被刷了...

说在前面 面试时最好不要虚报工资。本来阿里巴巴是很想去的&#xff0c;几轮面试也通过了&#xff0c;最后没offer&#xff0c;自己只想到下面几个原因 虚报工资&#xff0c;比实际高30%&#xff1b;有更好的人选&#xff0c;这个可能性不大&#xff0c;我看还在招聘。我是面…

【Redis】Redis持久化之AOF详解(Redis专栏启动)

&#x1f4eb;作者简介&#xff1a;小明java问道之路&#xff0c;2022年度博客之星全国TOP3&#xff0c;专注于后端、中间件、计算机底层、架构设计演进与稳定性建工设优化。文章内容兼具广度深度、大厂技术方案&#xff0c;对待技术喜欢推理加验证&#xff0c;就职于知名金融公…

Windows11安装OpenSSH客户端,实现ssh远程连接云服务器

一、打开设置 - 应用 - 添加可选功能&#xff0c;选择安装OpenSSH客户端 二、安装完之后&#xff0c;验证 ssh 命令 1、启动ssh服务之后&#xff0c;打开 cmd 窗口已支持连接 三、如果 ssh 命令仍然不生效&#xff0c;需要配置 ssh 环境变量 1、新建 SSH_HOME 环境变量&#…

2023 年前端十大 Web 发展趋势

很长一段时间&#xff0c;Web 开发的前景似乎没有什么进展&#xff08;2016 年至 2021 年&#xff09;&#xff0c;但在刚刚过去的 2022 年中确实又猛窜了一波。今天主要想跟大家聊聊最新 Web 开发趋势。相信这波浪潮会继续激发 Web 开发者的关注&#xff0c;对万象更新的 2023…

视频连载11 - 这个为生信学习和生信作图打造的开源R教程真香!!!

点击阅读原文跳转完整教案。1 思考题2 R基础2.1 R安装2.2 Rstudio基础2.2.1 Rstudio版本2.2.2 Rstudio安装2.2.3 Rstudio 使用2.3 R基本语法2.3.1 获取帮助文档&#xff0c;查看命令或函数的使用方法、事例或适用范围2.3.2 R中的变量及其初始化2.3.3 变量类型和转换2.3.4 R中矩…

MYSQL安装部署--Linux 仓库安装

声明 &#xff1a;# 此次我们安装的 MYSQL 版本是 8.0.32 版本 我们本次安装 MYSQL 总共要介绍 四种方式 # 仓库安装# 本地安装# 容器安装# 源码安装我们本篇介绍的是 仓库安装 仓库安装 下载 MYSQL 安装包 # MYSQL 安装&#xff0c;我们都是基于 MYSQL 官方网站里进行下载~&a…

计数系统架构设计(转)

本文主要节选和总结自沈剑大佬的 计数系统架构实践一次搞定 | 架构师之路和文章的评论&#xff0c;略有删改 一、问题描述 很多业务都有“计数”需求&#xff0c;以微博为例&#xff1a; 微博首页的个人中心部分&#xff0c;有三个重要的计数&#xff1a;关注了多少人的计数、粉…