1.原码、反码和补码
-
位(bit)是计算机中处理数据的最小单元,其值只能是0或1;
-
字节(Byte)是计算机处理数据的基本单元,一个字节为8位;
-
原码:用最高位表示符号位,其余位表示数值位的编码成为原码;其中正数的符号位为0,负数的符号位为1;
-
正数的原码、反码、补码均相同;
-
负数:
-
负数的反码:把原码的符号位保持不变,数值位逐位取反;
-
负数的补码:在反码的基础上加一。
补码:主要为了CPU运算器在进行减法运算时避免借位而设计,整数类都以补码来存储。
-
2.switch()
的()内都可以是什么类型?
- 可以是short,char,int,long和枚举类型,不能是float,double,boolean
- case后面只能是整型或者字符型的常量或常量表达式
3. C语言全局变量和局部变量可不可以重名?
可以,只不过局部变量可以覆盖全局变量,在局部变量的范围内全局变量不起作用。
4.内存对齐
要求某种数据类型对象的地址必须是2、4或者8的倍数,目的是提高CPU访问数据的效率。
5.struct
与union
比较
相同点:二者都是常见的符合结构,都是由多个不同的数据类型成员组成;
不同点:联合体中所有的成员公用一块地址空间,即联合体只存放一个被选中的成员,内存空间是最长成员占用的空间,需要进行内存对齐。
结构体所有成员占用空间是累加的,其所有成员都存在,不同成员会存在不同的地址,内存空间等于所有成员占用的空间之和,同样需要内存对齐。
6. C和C++中的struct
区别
-
C语言中的
struct
不能有函数成员,而C++的struct
可以有 ; -
C语言中的
struct
中的数据成员没有private、public和protected访问权限的设定,而C++的struct
成员有访问权限设定; -
C语言的
struct
是没有继承关系的,而C++的struct
却有丰富的继承关系。
7. C ++中的struct
与class的区别
8.大端和小端
9.static
(静态)变量关键字
10.const
的作用
11.数组指针与指针数组;函数指针与指针函数;常量指针与指针常量
12.typedef
与#define
13.将一个int型变量赋值给一个char型变量
未完待续。。。
完整答案,欢迎关注公众号,干货满满。