1、为什么scanf与printf比cin、cout快
因为cin与stdin保持同步,这种兼容性导致有额外的开销,使得cin更慢;同理,cout也与printf保持同步,也更慢。怎么变得更快:
std::iOS::sync_with_stdio(false) ,这个语句可以解除cin和stdin的同步,是cin更快。
2、声明和定义
extern int i; // 声明i而没有定义
int j ; //声明并定义
如果一个文件需要用另一个文件的变量,则必须声明。
3、引用不是对象只是给对象所起的另外名字。
4、指针是复合类型,指向不同类型的对象:
指针和引用不同,引用本身不是对象,指针本身就是一个对象,允许复制和拷贝。
5、const
//const与引用,而引用的对象本身可以不是常量
int i =9;
const int &r = i ; //不能通过改变r来改变i的值,但是可以改变i
i = 10; //正确的
r =10; //错误的
//顶层const指针本身是常量,底层const指针指向常量对象
const int num1 = 4;
const int *p = &num1; //指向常量的指针,底层const
int num2 = 5;
int *const pr = &num2; //常量指针,pr将一直指向num2,顶层const
const int num3 = 6;
const int *const pip = &num3; //指向常量的常量指针