2018年3月

定义一个常量

const int bufSize = 512;  // 正确
const int k;  // 错误:k 是一个未经初始化的常量

编译器在编译过程中把用的常量的地方都替换成对应的值。

默认情况下,const 对象仅在文件内有效。当多个文件中出现了同名的 const 常变量时,其实等同于在不同文件中分别定义了独立的常变量。如果想要在文件间共享 const 常变量,解决的办法是,对于 const 变量不管是声明还是定义都添加 extern 关键字。

// file_1.cpp 定义并初始化了一个常量,该常量能被其他文件访问
extern const int bufSize = fcn();
file_1.h 头文件
extern const int bufSize; // 与 file_1.cpp 中定义的 bufSize 是同一个。

- 阅读剩余部分 -

wchar_t c = 'A';

变量 c 是两个字节的值 0x0041, 是 Unicode 表示的字母 "A"。因 CPU 是从低位字节开始存储多字节数值,估该数据实际是以 0x41、0x00 的顺序保存在记忆体中。

数据类型

  • 基本类型(算数类型,整数,浮点数)
  • 枚举类型
  • void 类型
  • 派生类型

整数类型

类型存储大小
char1 byte
unsigned char1 byte
int2 or 4 bytes
unsigned int2 or 4 bytes
short2 bytes
unsigned short2 bytes
long4 bytes
unsigned long4 bytes

浮点类型

类型存储大小
float4 bytes
double8 bytes
long double10 bytes

void 类型

  • 函数返回为空 void exit (int status);
  • 函数参数为空 int rand(void);
  • 类型为 void 的指针: 类型为 void * 的指针代表对象的地址, 例如,内存分配函数 void *malloc( size_t size ); 返回指向 void 的指针,可以转换为任何数据类型。

- 阅读剩余部分 -