1.整理思维导图
2.有以下定义,说明哪些量可以改变哪些不可以改变?
const char *p:定义了一个指向字符类型常量的指针,指针变量p本身是可以修改的,但是不能通过p修改所指向的字符的值。
const (char *) p:定义了一个指向字符类型常量的指针,指针变量p本身是可以修改的,但是不能通过p修改所指向的字符的值。
char *const p:定义了一个指向字符类型的常量指针 ,指针变量p本身不可以修改的,但是可以通过p修改所指向的字符的值。
const char* const p;定义了一个指向字符类型常量的常量指针,指针变量p和字符都不可修改。
char const *p;定义了一个指向字符类型常量的指针,指针变量p本身是可以修改的,但是不能通过p修改所指向的字符的值。
(char *) const p;定义了一个指向字符类型的常量指针,指针变量p本身不可以修改的,但是可以通过p修改所指向的字符的值。
char const* const p:定义了一个指向字符类型常量的常量指针,指针变量p和字符都不可修改。
3.总结命名空间使用时的方式和注意事项
1.当只有一个命名空间时,在使用里面的内容时,需要先引入,可以全局引入(using namespace A),也可以局部引入(在全局中using A::num1或在使用时直接A::num1)。
2.当有多个命名空间变量冲突时,若想要引入A的命名空间的num1,需要使用A::num1格式,或者在引入时,只引入A的命名空间,在使用时直接写成num1
3.如果全局变量和命名空间变量冲突时,当使用全局时,格式为::age
4.当局部变量和命名空间冲突时,当前使用的age是距离该位置最近的age。
5.在命名空间外定义函数时,需要加上命名空间名和作用域限定符
6.对于嵌套命名空间,如果A中嵌套了B,访问B中的变量时,格式为A::B::num1
7.如果命名空间A已定义,在它下面又定义了一个命名空间A,则两个A所使用的是同一片空间