2.1.3 自面值常量
字符串字面值类似实际上由常量字符构成的数组。字面值‘A’就是字符A,“A”则代表一个字符数组,该数组包含两个字符,一个是字母A,另一个是空字符,也就是字符串A.
单引号是字符,双引号是字符串。
2.2.1 变量定义
对象:指一块能存储数据并具有某种类型的内存空间
变量初始化和赋值不是同一个含义,变量初始化是创建变量时赋予其一个初始值,而赋值含义是把对象当前值擦除,而用一个新值代替。
列表初始化
初始化a有好几种形式:C++11标准,用花括号来初始化得到广泛应用,这种花括号叫列表初始化。
int a=0;
int a = {0};
int a{0};
int a(0);
列表初始化有一个重要特点,如果初始化值存在信息丢失风险,则报错。long double 初始化int时,则会丢失小数,列表初始化阻止这样的行为。但是第11行的d(a)即可成功初始化。
2.6.3 编些自己的头文件
为了避免一个头文件被包含(include)多次,c/c++有两种宏实现方式:
① #ifndef 常用和正规,支持广泛
#define 宏定义;宏替换,简称宏
② #pragma once. 编译效率高 支持不广泛
方式一:
#ifndef __SOMEFILE_H__
#define __SOMEFILE_H__
… … // 声明、定义语句
#endif
方式二:
#pragmaonce
… … // 声明、定义语句