保证某些全局变量的常量性
// c++, C++中不能通过变量来定义数组 const int ROW = 10; const int COL = 10;
// C #define ROW 10 #define COL 10
or
enum { ROW = 10, COL = 10 };
C-style类型转换
(new-type)expression static_cast<new-type>(expression)
double res = (double)x/y; // C-style type cast double res = static_cast<double>(x)/y; // C++-style
函数指针的定义
typedef void(*func)();
全局结构体变量也会被默认进行初始化
typedef struct tagMemoRecord { int distance; int refCount; }MEMO_RECORD; MEMO_RECORD m1; int main(int, char**) { return 0; }
字符串的长度
char* str = "hello"; std::cout << sizeof(str) << std::endl; // 4, 一个指针所占字节数 std::cout << strlen(str) << std::endl; // 5, 一个字符串的**有效长度** char str[] = "hello"; std::cout << sizeof(str) << std::endl; // 6, "hello"在内存的中的表示为`hello\0`,共六个字节 std::cout << strlen(str) << std::endl; // 5, 字符串的有效长度
可到了吧,指针和数组名并不完全一致;
进制
unsigned int a = 0xf;
std::cout << a << std::endl;
// 15