C++
const
指针常量和常量指针
顶层const :指针本身是个常量, 一般对应常量指针
int i = 0;
int *const p1 = &i; 顶层const
底层const:指针所指的对象是个常量,一般对应指针常量
const int ci = 42; 顶层const
const int *p2 = &c1;(允许改变P2的值)
函数的传值和传引用
传值:函数形参使用值传递,定义一个临时变量,对实参初始化后,拷贝实参。
传引用:函数形参使用引用传递,即把实参和形参通过引用绑定,提高效率
如果函数无需改变形参值,最好把它声明为常量引用
如 bool A(const int num){}
想多返回值,可以给局部变量加static
C++ 指针和多维数组 :int *p[4] 和int (*p)[4]区别
int *p[4] ; 整型指针的数组
int arr[3][4];
int (*p)[4] = arr; //指向含有四个整数的数组
p = &arr[2]; //p指向arr的尾元素
C++迭代器 (实质是一个指针)
范围for语句
正常是拷贝,不会改变原数组,要改变元素必须加引用
也不能在遍历的时候插入元素 即:不能改变遍历序列的大小
string A ("hello world !");
for(auto &c : A) //c加了引用
c = toupper(c);
cout<< A;
递增运算符和解引用运算符 优先级
后置递增运算符优先级高于解引用运算符
前置递增、前置递减和解除引用运算符的优先级相同,以从右到左的方式进行结合。
后置递增和后置递减的优先级相同,但比前置运算符的优先级高,这两个运算符以从左到右的方式进行结合。