1.命名空间:用以区分不同空间下的变量重名
1)定义:namespace name/*名字*/{}//没有分号
2)使用整个命名空间:using namespace name;
3)使用命名空间中的变量:using name::variable;
4)使用默认命名空间中的变量:::variable
5)namespce定义可嵌套。
6)使用命名空间的变量要深入到最底层,如果该变量又嵌套在一个命名空间中
2.变量可以在使用时再定义
3.在C++中,不允许定义多个同名的全局变量
C语言中多个同名的全局变量最终会被链接到全局数据区的同一个地址空间上
4.
1)C语言的struct定义了1组变量的集合,C编译器并不认为这是1种新的类型
2)C++中的struct是1个新类型的定义声明
3)struct student{};
student s1;//定义struct变量直接定义即可
5.
1)int f(); 和int f(void)具有相同的意义,都表示返回值为int的无参函数
2)C++中所有的变量和函数都必须有类型
6.bool
1)bool类型只有true(1)和false(0)两个值
2)C++编译器会在赋值时将非0值转换为true,0值转换为false
3)bool占一个字节
7.
1)C语言中的三目运算符返回的是变量值,不能作为左值使用
2)C++中的三目运算符可直接返回变量本身,因此可以出现在程序的任何地方
3)三目运算符可能返回的值中如果有一个是常量值,则不能作为左值使用
//(a < b ? 1 : b) = 30;//error
8.
1)C++中的const修饰的,是一个真正的常量,而不是C中变量(只读)。在
const修饰的常量编译期间,就已经确定下来了
2)创建const常量时会分配符号表存储在常量区,不可更改
3)对常量取地址, C++编译器会临时开辟一个空间让这个指针也就是p存放这个临时空间的地址
9.引用
1)int &是引用数据类型,相当于取别名,使用引用的时候相当于直接操作实参
2)&前有数据类型,是引用,其余都是取地址,
3)引用一定要初始化,如果是结构体元素是引用不需要初始化,
因为结构体一开始声明的时候只是一个数据类型,不分配空间,定义变量的时候才分配空间
4)引用可以看做常指针,视为编译器替我们将实参取地址给引用
5)引用作为返回值,可以做左值,不要返回局部变量的引用,因为局部变量会被回收,
可以加static这样引用的局部变量就是存储在全局区中,函数调用结束后并没有被回收
6)如果想对一个const引用,必须是一个const引用
const int a=10;
//int &b=a;//error
int const &b=a;//C++中的常量不可改变,所以必须是const引用
网友评论