2.2.1 变量定义:列表初始化(list initialization)

  • 定义一个整型i并初始化为0

  • #include<iostream>
    using namespace std;
    int main(){
    //下面四种初始化方式都可以
    int i = 0;
    int i = {0};
    //c++新特性
    int i{0};
    int i(0);
    return 0;
    }
  • 注: 含有{}的的定义方式不支持类型转换(如把float的值用此方式初始化给int时会警告或报错)

2.2.2 变量的定义与声明

C++分离式编译

  • c++支持分离式编译(separate complication):允许把程序分割成多个文件在分别编译
  • 分离式编译要保障变量间的互通

定义与声明

  • 声明(declaration):extern int i;

    • 表明程序中有int i 这个变量,编译器会在所有编译文件中寻找该变量
    • 需要指明变量的类型(type)和名称(name)
  • 定义(definition):int i

    • 编译器直接创建变量 int i ,为它分配存储空间
    • 需要指明变量的类型(type)和名称(name),可以指定初始值
  • 概念关系图

  • 注意点

    • 变量只能被定义一次,但可以被声明多次
    • 声明是赋予初始值就等价于定义,extern关键字被覆盖
      • extern double pi = 3.1416; //definition

2.2.3 C++变量命名

  • 不能以数字和下划线_开头,不能出现连续的两个下划线

  • 不能出现关键字

    2

2.2.4 变量名的作用域(scope of a name)

全局作用域与块作用域

  • 全局作用域(global scope):全局有效
  • 块作用域(block scope):块内有效【被花括号包围的部分被称为一个块】

嵌套关系

规则

  • 全局变量与块变量同名时,块变量会覆盖全局变量
  • ::variables_name:在块变量把全局变量覆盖时坚持调用全局变量

例子

2-2 C++变量的更多相关文章

  1. 6 小时 Python 入门

    6 小时 Python 入门 以下操作均在 Windows 环境下进行操作,先说明一下哈 一.安装 Python 1.官网下载 Python 进入官网(https://www.python.org), ...

  2. In-Memory:在内存中创建临时表和表变量

    在Disk-Base数据库中,由于临时表和表变量的数据存储在tempdb中,如果系统频繁地创建和更新临时表和表变量,大量的IO操作集中在tempdb中,tempdb很可能成为系统性能的瓶颈.在SQL ...

  3. 探究javascript对象和数组的异同,及函数变量缓存技巧

    javascript中最经典也最受非议的一句话就是:javascript中一切皆是对象.这篇重点要提到的,就是任何jser都不陌生的Object和Array. 有段时间曾经很诧异,到底两种数据类型用来 ...

  4. Shell特殊变量

    $ 表示当前Shell进程的ID,即pid $echo $$ 运行结果 特殊变量列表 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数.n 是一个数字,表示第几个参数.例如,第一个参数 ...

  5. Java多线程基础——对象及变量并发访问

    在开发多线程程序时,如果每个多线程处理的事情都不一样,每个线程都互不相关,这样开发的过程就非常轻松.但是很多时候,多线程程序是需要同时访问同一个对象,或者变量的.这样,一个对象同时被多个线程访问,会出 ...

  6. Js 变量声明提升和函数声明提升

    Js代码分为两个阶段:编译阶段和执行阶段 Js代码的编译阶段会找到所有的声明,并用合适的作用域将它们关联起来,这是词法作用域的核心内容 包括变量声明(var a)和函数声明(function a(){ ...

  7. PHP源码分析-变量

    1. 变量的三要素变量名称,变量类型,变量值 那么在PHP用户态下变量类型都有哪些,如下: // Zend/zend.h #define IS_NULL 0 #define IS_LONG 1 #de ...

  8. JavaScript var关键字、变量的状态、异常处理、命名规范等介绍

    本篇主要介绍var关键字.变量的undefined和null状态.异常处理.命名规范. 目录 1. var 关键字:介绍var关键字的使用. 2. 变量的状态:介绍变量的未定义.已定义未赋值.已定义已 ...

  9. shell变量

    定义变量 定义变量时,变量名不加美元符号($),如: variableName="value" 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样.同时,变量名 ...

  10. 引人瞩目的 CSS 变量(CSS Variable)

    这是一个令人激动的革新. CSS 变量,顾名思义,也就是由网页的作者或用户定义的实体,用来指定文档中的特定变量. 更准确的说法,应该称之为 CSS 自定义属性 ,不过下文为了好理解都称之为 CSS 变 ...

随机推荐

  1. 优化系统性能:深入探讨Web层缓存与Redis应用的挑战与对策

    Web层缓存对于提高应用性能至关重要,它通过减少重复的数据处理和数据库查询来加快响应时间.例如,如果一个用户请求的数据已经缓存,服务器可以直接从缓存中返回结果,避免了每次请求都进行复杂的计算或数据库查 ...

  2. Android 执行shell命令 非root

    一个开源的项目已经完成了这个功能 app_process-shell-use,这个项目网上讲解的,很多,我这边就把操作时一些简要步骤说明一下 但是该方式有缺点:必须要先USB连接,debug的时候,运 ...

  3. Go 必知必会:探索 Go 语言中的数组和切片深入理解顺序集合

    文末有面经共享群 在 Go 语言的丰富数据类型中,数组和切片是处理有序数据集合的强大工具,它们允许开发者以连续的内存块来存储和管理相同类型的多个元素.无论是在处理大量数据时的性能优化,还是在实现算法时 ...

  4. 八,SpringBoot Web 开发访问静态资源(附+详细源码剖析)

    八,SpringBoot Web 开发访问静态资源(附+详细源码剖析) @ 目录 八,SpringBoot Web 开发访问静态资源(附+详细源码剖析) 1. 基本介绍 2. 快速入门 2.1 准备工 ...

  5. ASP.NET Core – Minimal API

    介绍 Minimal API 是 .NET 6 才开始有的功能. 它是一个简化版本的 Web API. 我还没有认真的去学习它, 感觉它走的是 Node.js Express 的路线. 目前用它来写小 ...

  6. TypeScript – Work with JavaScript Library (using esbuild)

    前言 JavaScript 早期是没有 Modular 和 Type (类型) 的. 随着这几年的普及, 几乎有维护的 Library 都有 Modular 和 Type 了. 但万一遇到没有 Mod ...

  7. 为了更好的 Flutter | 2021 第二季度开发者调研

    自 Flutter 2 发布以后,诸多振奋人心的开发特性 也随之解锁,从 加速应用开发 到 流畅地开发多平台应用 都已经有了长足的进步.我们也从社区收集到了不少大家关心的问题,并进行了 解答.毫无疑问 ...

  8. SQL数据库书的配套资源

    <SQL基础教程(视频教学版)>代码.课件.教学视频 https://pan.baidu.com/s/1QA5m5HN159wi3FX_KNDQzA 提取码: 4m9e <SQL S ...

  9. Flutter将视频或图文分享到抖音

    如何在 Flutter 中分享视频到抖音 话不多说,先上效果: 原理 发布内容至抖音 H5 场景_移动/网站应用_抖音开放平台 (open-douyin.com) 本教程没有接入抖音原生 SDK 以及 ...

  10. 使用 vite 配置目录别名

    你是否被 ../ ../../ 这样的路径折磨的心力憔悴,如果你使用 vite 的话,不妨来试试 alias 命名目录吧. 安装 @types/node 来加载 path 模块 npm i @type ...