C++两本巨著primer plus和primer太过于经典,以至于读过多次,每次阅读仍然有新的收获,所以将一些零碎的知识点整理在这里,与大家共同进步。
1.i++与++i的效率比较:
前缀效率高,后缀在递增前需要一个副本。
2.typedef和define的区别
define进行简单的替换,但是typydef可能带有类型。
#define float_32 float*
typedef float* float_32_1;
float_32 ptr1, ptr2;
float_32_1 ptr3, ptr4;ptr2是float,其他是是指针。
3.关于char类型
char类型有没有符号取决于实现。
char ch;
while(ch = cin.get()!=-1)//可能存在的问题,char为unsigned
{cout<< ch;}
4.关于&&和||优先级的问题
&&优先于||
int y=1,x=2;
int z=y||x++&&++x;
cout<<x<<y<<endl;
最后输出的y=1,x=2.因为||截断。优先级只能保证结合的方式,int z=y||(x++&&++x),但是不能保证执行的顺序。
5.二维数组传参的方式
int data[3][4] = { {1,2,3,4},{5,6,7,8},{9,10,11,12}};
int sum(int (*data)[4] , int n){
}//或者 int sum(int[][4],3){}
6.泛型中函数匹配,最佳到最差:
(1) 完全匹配//非const优先非const,在指针和引用的情况下