一、C语言中变量赋值和初始化
变量初始化: int a = 1;
变量赋值: int a; a = 1;
变量初始化的效率比赋值的效率高。
二、算术运算符
算术运算符有:+ - * / %
/运算符,除数不能为0.
%为求余运算符(两侧的数据应为整型或者与整型兼容的类型,且除数不能为0)
%运算符结果的符号与其左操作数有关,与右操作数无关。
编译器只做类型检查, 例如:当除数为0时,编译器不报警。
算术运算符的优先级和结合性:
优先级从上到下:
算术表达式:由算术运算符组成的表达式。
单纯的希望变量进行自增操作,用++i的效率比i++的效率高。
i++和++i
i++分配临时空间给它,表达式没有加,但是i加了
++i,直接对i进行加操作,不分配临时空间。
赋值运算符左边的值称为左值(locatable),右边的值称为右值(readable)。
左值大多数为变量,左值可以通过取地址符&来获取其地址,右值为数据,右值不能通过&获取地址。
const 关键字可以限制变量在程序运行过程中被修改;const int i = 100 ;
三、不同数据间的混合运算。
1.不同类型数据间的转换
隐式转换:
char、short类型的数据会自动转换为int类型,即必转。float类型数据会自动转换成double类型。
低级数据和高级数据进行计算时会自动向高级数据转换。
显式转换
通过强制类型转换运算符(类型)可以将一个类型的变量或者表达式,转换为另一个类型的数据。
例如:int a = 1;
(double)a;
(double)将int类型的强制转换为double类型的a;
强制类型转化时可能会造成精度丢失。
四、不同数据类型之间的混合赋值
1.当double类型数据赋值给 int数据类型时,原数据的小数部分会被截断。(小数部分截断)
2.当int型数据赋值给short型数据时,会将原数据的高位截断。(高位截断)
3.当短数据类型赋值给长数据类型时,长数据类型中多出来的空白会填补短数据的符号位
正数填0,负数填1。(符号位扩展)
五、逗号运算符
逗号表达式,又称为“顺序求值运算符”。逗号表达式的一般形式为
表达式1,表达式2
逗号表达式的求解过程是:先求解表达式1,再求解表达式2。整个逗号表达式的值
是最后一个表达式的值。例如,逗号表达式“3+5,6+8”的值为14。
逗号表达式的优先级很低,因此在计算时要注意优先级顺序。