1.C++11识别的基本数据类型
double float void char int bool wchar_t(更广泛的char类型) long short unsigned sign
2.关于指针参数交换变量
这是一个有趣的问题。
void swap1(int *x, int *y){
int temp;
temp = *x;
*x = *y;
*y = temp;
};
void swap2(int *x, int *y){
int *temp;
temp = x;
x = y;
y = temp;
};
void main(){
int i = 1, j = 2;
swap1(&i, &j);
cout << i << endl;
cout << j << endl;
}
上面两个swap看上去都能交换两个实参,因为书上告诉我们指针型形参是可以交换实参的,但事实上只有swap1可以交换。原因是swap1里对地址取值了,没错,取值了,就等于说是i和j直接交换,当然能交换咯,但swap2只是把是形参的地址交换,函数结束后也不会对i,j产生影响。
3.const
const int* const test(const int * const p)const
{
int a = 10;
return &a;
}
嗯,大概上面5个const就差不多了。
第一、第二个const限制的是函数类型
第三个const限制的是*p
第四个const限制的是p
第五个const限制函数为“只读”