1、const与#define的区别:(const常量在C语言中叫常变量,在C++中叫常量)
C++语言可以用const来定义变量,也可以用#define来定义常量。但是前者比后者有更多的优点:
(1)const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查。而对于后者只能进行字符替换,不能进行类型安全检查,并且在字符替换时可能会出现错误(边际效应)。
(2)有些集成化的调试工具可以对const常量进行调试,但是不能对宏常量进行调试。
(3)在C++程序中只使用const常量而不使用宏常量,即const常量完全取代宏常量。
2、if语句和switch语句的区别:
(1)有了if语句为何还要switch语句?
理由:
switch语句是多分支选择语句,而if语句只有两个分支可供选择,虽然可以使用嵌套的if语句来实现多分支选择,但那样的程序冗长难度。这是switch语句存在的理由。
(2)格式:
A:if语句的格式:
A:if语句的执行流程:
B:switch语句的执行流程:
>>:右移,即从后往前删去移动位数,再在最前面补零,将某数右移一位相当于缩小一
倍。(相当于除法)
<<:左移,即从前往后删去移动位数,再在最后面补零,将某数左移一位相当于扩大一
倍。(相当于乘法)
逗号表达式的特点:只会取到整个表达式的最后一个值,如:int a = (10,20,30);则a的
值为30.
&:按位取与
|:按位取或
~:按位取反
4、一些汇编语言的含义:
MOV(MOVE)传送指令
PUSH 入栈指令
POP 出栈指令
XCHG(exchange) 交换指令
XLAT(TRANSLATE) 换码指令
LEA (Load Effective Address) 有效地址送寄存器指令
LDS(Load DS with pointer) 指针送寄存器和DS指令
LES(Load ES with pointer) 指针送寄存器和ES指令
LAHF(Load AH with Flags) 标志位送AH指令
SAHF(Store AH into Flgs) AH送标志寄存器指令
PUSHF(PUSH the Flags) 标志进栈指令
POPF(POP the Flags) 标志出栈指令
ADD 加法指令
ADC 带进位加法指令
INC 加1指令
SUB(SUBtract) 不带借位的减法指令
SBB(SuVtrach with borrow) 带借位的减法指令
DEC(DECrement) 减1指领
NEG(NEGate) 求补指令
CMP(CoMPare) 比较指令
MUL(unsinged MULtiple) 无符号数乘法指令
IMUL(sIgned MUL tiple) 有符号数乘法指令
DIV(unsigned DIVide) 无符号数除法指令
IDIV(sIgned DIVide) 有符号数除法指令
CBW(Count Byte to Word) 字节转换为字指令
CWD(Count Word to Doble word) 字转换为双字指令
DAA 压缩的BCD码加法十进制调整指令
DAS 压缩的BCD码减法十进制调整指令
AAA 非压缩的BCD码加法十进制调整指令
AAS 非压缩的BCD码加法十进制调整指令
5、变量在定义的时候需要注意哪些问题:
(1)变量名的使用必须合理且合法具有可读性和容易理解性。
(2)对局部变量定义时必须初始化,若不进行初始化则输出值为随机值。
(3)在函数外定义的变量为全局变量,默认值是0.
6、运算符的优先级: