作用域,基本数据类型(常量const),转义字符,单引号与双引号,运算符

1.作用域

**全局作用域:**定义在所有花括号外的名字具有"全局作用域"

**块作用域:**在某个花括号内定义的名字具有"块作用域"

一般把具有全局作用域的变量叫做"全局变量",具有块作用域的变量叫做"局部变量"

如果在嵌套作用域里出现重名,一般范围更小的局部变量会覆盖全局变量。如果要特意访问全局变量,需要加上双冒号:: ,指明是默认命名空间。

cpp 复制代码
#include<iostream>
using namespace std;

// 全局作用域,全局变量
int number = 0;

int main()
{
	// 块作用域,局部变量
	int number = 1;

	// 访问局部变量
	cout << "number = " << number << endl;
	// 访问全局变量
	cout << "number = " << ::number << endl;

	cin.get();
}

2.常量

定义方法:

cpp 复制代码
方法1:
#define ZERO 0

在文件头用 #define 来定义常量,也叫作"宏定义"。这种宏定义的方式是保留的C语言特性,在C++中一般不推荐。而且没有数据类型


方法2:
const int Zero = 0;

常量定义后不能修改,定义时候必须赋值,不能先声明,在赋值如
const int Zero
Zero = 0

3.转义字符

单引号是 char 字符类型, 双引号是 string 字符串类型,使用字符串要写**#include<string>**

如想要定义单引号

cpp 复制代码
#include<string>
char a = '\'';           #定义单引号字符
string b = "abc";

4.运算符

注:

如果希望判断一个整型变量a是否在某个范围(0, 100)内,不能直接写:0 < a < 100;

由于小于运算符"<"满足左结合律,要先计算0 < a,得到一个布尔类型的结果,再跟后面的100进行比较。此时布尔类型做整数提升,不管值是真(1)还是假(0),都会满足 < 100 的判断,因此最终结果一定是true。

要想得到正确的结果,需要将两次关系判断拆开,写成逻辑与的关系。

cpp 复制代码
判断一个整型变量a是否在某个范围(0, 100)内
a = -1;              
0 < a < 100;         //错误写法    不论a取什么值,总是true
0 < a && a < 100;    //正确写法    false
相关推荐
L耀早睡10 分钟前
mapreduce打包运行
大数据·前端·spark·mapreduce
HouGISer23 分钟前
副业小程序YUERGS,从开发到变现
前端·小程序
outstanding木槿29 分钟前
react中安装依赖时的问题 【集合】
前端·javascript·react.js·node.js
霸王蟹1 小时前
React中useState中更新是同步的还是异步的?
前端·javascript·笔记·学习·react.js·前端框架
霸王蟹1 小时前
React Hooks 必须在组件最顶层调用的原因解析
前端·javascript·笔记·学习·react.js
专注VB编程开发20年1 小时前
asp.net IHttpHandler 对分块传输编码的支持,IIs web服务器后端技术
服务器·前端·asp.net
爱分享的程序员2 小时前
全栈项目搭建指南:Nuxt.js + Node.js + MongoDB
前端
隐含3 小时前
webpack打包,把png,jpg等文件按照在src目录结构下的存储方式打包出来。解决同一命名的图片资源在打包之后,重复命名的图片就剩下一个图片了。
前端·webpack·node.js
lightYouUp3 小时前
windows系统中下载好node无法使用npm
前端·npm·node.js
Dontla3 小时前
npm cross-env工具包介绍(跨平台环境变量设置工具)
前端·npm·node.js