表达式
++i和i++
对于++i来说,编译器不需要保存其原值来返回未修改的内容,而i++需要,这也会增加额外的工作,所以使用++i会在一定程度上加快程序的运行
范围for
for(declar:expr){
...
}
expr必须是一个序列或vector、string等类型的对象,declar定义一个对象,会从头开始将expr中的每个对象都循环一遍
函数
数组形参
由于数组的特殊性
1.不允许拷贝数组
2.数组在使用时会转换为指针
在写数组形参的时候可以这样
void fun(int *);
void fun(int []);
void fun(int [10]);
上述三条函数是等价的,在第三条表示我们期望数组大小为10,但实际不一定
多维数组在传递的时候应注意
void fun(int (*p)[10]); //指向含10个int的数组的指针
void fun(int [][10]); //等价于上面
void fun(int *p[10]); //10个指针构成的数组
返回数组指针
int (*fun(int i))[10]; //直接返回指针不就行了么?
fun的返回值类型为指向有10个元素的数组的指针,输入参数为i