C++学习之路--2
1、全局变量检测增强
int a;
int a=10;
2、函数检测增强,参数类型增强,返回值检测增强,函数调用参数检测增强
int getRectS(int w, int h)
{
return w*h
}
3、类型转换检测增强
void test03()
{
char *p = (char*)malloc(sizeof(64)); //malloc返回值是void*
}
4、struct增强
struct Person
{
int m;
void plusAge(); //c++中struct可以加函数,使用时可以不加struct关键字
}
5、bool类型增强
bool flag; //非0值会转换成1
6、三目运算符
void test05()
{
int a=100;
int b=200;
cout << "ret=" << (a < b ? a : b) << endl;
(a < b ? a : b) = 1000;
}
7、const增强,默认内部链接
void test07()
{
const int m=30;
int *p = (int *)
}
8、const取地址会分配临时内存,extern编译器也会给const变量分配内存,用普通变量初始化const的变量,自定义数据类型
- 基本语法 Type &别名=原名
- 引用必须初始化
- 引用初始化后不可以修改。
- 数组的引用
typedef int(ARRAYREF)[10]; //一个具有10个元素的int类型的数组
ARRAYREF & pArr2 = arr;
&写到左侧叫引用,写到右侧叫取地址
参数传递
- 值传递
- 地址传递
- 引用传递
- 注意事项
- 必须引用一个合法的内存空间 // int &a = 10;
- 不要返回局部变量的引用
- 如果一个函数的返回值是引用,那么这个函数的调用可以作为左值
- 注意事项
引用本质就是一个指针常量
常量引用
const int &ref = 10;
int * p = (int*)&ref;
*p = 1000;