int main
cerr
警告 错误信息clog
一般信息endl
=\n
+flushing/* ... */
Ctrl+Z
文件结束bool
,char
,wchar_t
,char16_t
,char32_t
,short
8,int
16,long
32,long long
64,float
,double
,long double
0
八 0x
十六 0e0
科学记数法int units_sold{0}
,int units_sold(0)
extern int i
int 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 wages
using SI = Sales_item;
typedef char *pstring;
后const pstring
代表的是char const*
指针为常量,而不是const char*
指向常量的指针auto
C++11
auto item = val1 + val2;
decltype
C++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
声明