在C++编译过程中,首先将源代码传递给预处理器,#define和#include也是一个预处理器编译指令,#define指令会告诉预处理器:在程序中查找xxx,并将所有的xxx替换为yyy。
c++11初始化方式:
这种方式用于数组和结构,在c++11中也可以用于单值变量。
#include "stdafx.h"
#include <iostream>
using namespace std;
const int MAX_ARR = 4;
class CDog
{
public:
CDog(int nLegs) : m_nLegs(nLegs)
{
}
private:
int m_nLegs;
};
int _tmain(int argc, _TCHAR* argv[])
{
//(1)
cout << CHAR_BIT << endl; //limits.h还包括各种类型的最大最小值
//(2)
int a = { 2 };
int b = {}; //初始化为0
int c{ 2 };
cout << a << " " << b << " " << c << endl;
//(3)
int* pArr = new int[MAX_ARR]{1, 2, 3, 4};//c++11
for (int i = 0; i < MAX_ARR; ++i)
{
cout << pArr[i];
}
//(4)
CDog dog1(4); //old style
CDog dog2{ 4 }; //c++11
CDog dog3 = { 4 }; //c++11
char chr1 = 128;
char chr2 = { 127 };
char chr3 = { 128 }; //编译错误,{}赋值,防止缩窄(即将值存储到比它窄的变量中)
return 0;
}