1.一维数组默认初始化问题
- 如果不对数组进行任何初始化操作, 仅定义一个数组, 那么数组中这些元素的值是不确定的, 是系统中随机的一个值。
50.const char *p1 = "hello";char *const p2 = "hello",有什么区别。
const在指针和引用声明中位置的不同分别代表不同的意义。
- const char *p1 等价于 char const *p1为指针指向内容为常量,指向字符串常量的指针;
- char *const p2 为常量指针,指向字符串的常量指针。
2.struct与class有什么区别和联系
struct与class在C++中看起来没什么区别,只是使用习惯,不过说到区别可能还有2点吧。
(a)默认的访问控制,struct默认访问控制public,class默认访问控制private,写代码时最好标明确访问控制。
(b)class这个关键字还用于定义模板参数,like "typename"。关键字struct不能用于定义模板参数。
3.函数指针和指针函数
函数指针:char (*p)();p为指向函数的指针
指针函数:char *p();返回指针的函数
53.指针数组和数组指针
指针数组:char *cp_array[];
数组指针:char (*p_array)[];
4.大端小端
- 大端模式,是指数据的高位,保存在内存的低地址中,而数据的低位,保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;
- 小端模式,是指数据的高位保存在内存的高地址中,而数 据的低位保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低,和我们的逻辑方法一致。