一、变量赋初值
实际上是对变量的初始化,即在为变量开辟内存空间的同时,存入初始值。
变量初始化不同于赋值,赋值是将原先随机的值改为想赋的值。
二、运算符
1、算术运算符
三级:* / % 四级: + -
注意:(1)任何表达式都有数据类型。
(2)编辑器只做类型检查。
例如:用10 / 0,编辑器报错。浮点型异常,立即从当前异常代码停止运行。
重点介绍%求余运算符
(1)对求余运算符左右两操作数必须为整型或与整型相兼容(如char型)。
(2)求余表达式最终结果类型与左操作数有关,而与右操作数无关。
(3)求余最终结果一定小于右操作数。
2、++自增 与 --自减
插入说明:函数原型:函数返回值类型+函数名+(形参)
函数调用:函数名+(实参)
【其中形参与实参的个数相等、类型匹配。】
例如:产生十个随机数,且在【0,100)之间。其中调用了time、strandom、random函数。
· 在变量存储时,都会有一段自己的内存空间。而表达式未被明确定义,因此其所存储的空间为临时空间,称为临时变量(匿名变量)。
例如:其中i + j便为临时变量。
· ++i(前++):表达式与i都加了;i++(后++):表达式没加,i加了。
例如:i++表示存储在橙色部分内存空间,是将原本的i拷贝过来;自加后的i仍存储在原本的绿色空间内。
· 左值与右值
最早的解释是left value(左值)为赋值运算符的左边,为变量;right value(右值)为赋值运算符的右边,多为常量或者匿名变量。
而新的定义更为准确,locatable(左值)是可定位的,即可以取地址&;readable(右值)是可读的,但不能被取地址。
特例:在变量前加上const修饰,其被定义为只读变量,在形式上无法被修改,但能够取地址。为左值。
3、赋值运算符
"=" 将一个数据赋给一个变量,其本质是内存的拷贝。
4、逗号运算符
顺序求值运算符,可以将几个表达式连起来。
注意:在函数调用中出现的逗号为实参分隔符。
5、附录C 运算符和结合性
掌握运算符含义、优先级以及结合方向。
三、各类数值型数据间的混合运算
1、隐式转换
例如:根据上表,float型直接转换为double型;int根据数据类型级别的高低,也转换为double型。最终表达式输出为double型。
2、显式转换
用强制类型转换运算符。在之前加上需要转换的类型,写法:(类型)。
四、不同数据类型间的混合赋值
无非两大类,长字节与短字节间的赋值,有符号与无符号间的赋值。其中再相互变化。
如下有几个特别的例子:
(1)将double型赋值给int型。小数部分截断
(2)将int型赋值给short型。 高位截断
(3)将short型赋值给int型。 符号位扩展
若符号位为正,则空洞补0;若符号位为负,则空洞补1
(4)将unsigned short型赋值给int型。 无符号位,空洞全补0