1.
2.有以下定义,说明哪些量可以改变哪些不可以改变?
1)const char *p;
定义了一个指向字符类型常量的指针,指针变量p本身是可以修改的,但是不能通过p修改所指向的字符的值。
2)const (char *) p;
定义了一个指向字符类型常量的指针,指针变量p本身是可以修改的,但是不能通过p修改所指向的字符的值。
3)char *const p;
定义了一个指向字符类型的常量指针 ,指针变量p本身不可以修改的,但是可以通过p修改所指向的字符的值。
4)const char* const p;
定义了一个指向字符类型常量的常量指针,指针变量p和字符都不可修改。
5)char const *p;
定义了一个指向字符类型常量的指针,指针变量p本身是可以修改的,但是不能通过p修改所指向的字符的值。
6)(char *) const p;
定义了一个指向字符类型的常量指针,指针变量p本身不可以修改的,但是可以通过p修改所指向的字符的值。
7)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所使用的是同一片空间