int maincerr警告 错误信息clog一般信息endl=\n+flushing/* ... */Ctrl+Z文件结束bool,char,wchar_t,char16_t,char32_t,short8,int16,long32,long long64,float,double,long double0八 0x十六 0e0科学记数法int units_sold{0},int units_sold(0)extern int iint j一般在初始化变量时,初始值会被拷贝到新建的对象中。然而定义引用时,程序把引用和它的初始值绑定在一起,而不将初始值拷贝给引用。一旦初始化完成,引用将和它的初始化对象一直绑定在一起。因为无法令引用重新绑定到另外一个对象,所以引用必须初始化。
int ival = 1024;
int &refVal = ival; // refVal指向ival(是ival的另一个名字)
int &refVal2; // 报错:引用必须被初始化
*解引用符nullptr,0,NULL的预处理变量(preprocessor variable,在cstdlib定义,值就是0)int变量直接赋值给指针是错误的操作,即使int的值恰好为0也不可void*指针,可用于存放任意对象的地址int* p1,p2;p1是指向int的指针,p2是intvar转为is a,遇到*转为pointer to
const int* p与int const* p相同,指针指向整型常量,内容不能改,但指针可以改int* const p,指针为常量指向整型,内容可以改,但指针不能改extern关键字int *const p1 = &i; 底层常量-指针所指对象是一个常量const int *p2 = &ci;
const int c = 1;
const int &r = c;
r = 42; // 错误:r是对常量的引用
int &p = c; // 错误:试图让一个非常量引用指向一个常量对象
const double &p2 = c; // 错误:这样绑定的是临时量temp
constexpr C++11
typedef double wagesusing SI = Sales_item;typedef char *pstring;后const pstring代表的是char const*指针为常量,而不是const char*指向常量的指针autoC++11
auto item = val1 + val2;decltypeC++11
decltype(f()) sum = x;sum的类型就是函数f的返回类型decltype((var))双层括号结果是引用;#include即在预处理的时候用头文件替代#define把一个名字设定为预处理变量#ifdef当且仅当变量已定义时为真#ifndef当且仅当变量未定义时为真#endif一旦检查为真执行至此#ifndef DATA_H
#define DATA_H
...
#endif
using std::cin;using std::cout;using std::string;using声明