7.17.......

变量赋初值
1.赋初值:初始化,在变量开辟地址空间时赋初值

如:

int i = 8;
2.赋值:先开辟地址空间,后对变量赋值

如:

int a ;
a = 8;
进行赋值时,初始化比赋值效率高

运算符
常见运算符

注意:

1.优先级 :优先级高的先进行运算

2.结合方向: 运算级同级时,按照结合方向运算

3.单目运算符:只需一个操作数

   双目运算符:需要两个操作数

   三目运算符: 三个操作数

  优先级:单目运算符>双目运算符>三目运算符

  除法 (任何数据都有数据类型)

eg:float/float结果为

编译器只做类型检查,若除数为0,编译器无法检测,将编译成功,后程序崩溃

eg:

求余(/)

求余运算符要求两个操作数必须为整型或与整型相兼容的类型,若不相同或兼容,则:

求余表达式结果与左侧操作数有关  结果一定小于右操作数

新学习到的函数:随机数生成器 函数

 long int (返回类型)random(函数名)(标识符)(void)虚空的:(形参)

形参与实参必须个数相等 类型匹配

自加运算和自减运算
1.以自加运算为例:

++i  先加后用  底层原理:表达式与i都加了

i++  先用后加 先拷贝表达式为临时变量  表达式没加   i 加了

如下:i=2时,进行i++操作,程序将先拷贝i的值存储在另外一个地址,后对i进行+1操作

此处开辟出一个变量为匿名变量 

若单纯加减 ++i效率高

i--和--i与i++ ++i相同

2.注意:同一表达式,不要对变量反复++ 

3.左值右值

左值:赋值运算符左边(变量 )

右边:赋值运算符右边(常量)

判断左右值方法:可以取地址的为左值,不能取地址的为右值。(所有匿名变量均为右值)

4.允许对变量定义时 加const  i变成只读变量 不可改变取值(但依旧为左值)可取地址

eg:

临时变量( 匿名变量 )

 则 i+ j 为临时变量  临时变量与表达式数据类型一致

各类数值型数据间的混合运算


1.隐式转换:有级别差时,由低级别转为高级别

 如short  、float将自动转为 int、  double

例:

由于unsigned级别高于int,所以先将i的类型转换为 unsigned,因unsigned 均>0,所以输出结果将为 No

2.显式转换:强制类型转换运算符 (有可能会带来数据信息丢失)

eg:

不同数据类型之间的混合赋值
1. double=int (double本身又有整数又有小数),不会报错

2. int =double  会发生小数部分截断 只保留整数

3.  short= int  (长数据类型向短数据类型赋值时 去掉高位字节位 保留地位字节位)为高位截断

4.int=short (符号位扩展) 正数补0  负数补1

   int i= unsigned short

总结:  短向长赋值时 signed补符号位(0正1负   unsigned补0)

5.unsigned int = int  若内存空间一样大 可直接拷贝

逗号表达式
顺序求值运算符 

则输出结果为5

函数调用表达式中的逗号,不是逗号运算符,是形参的分隔符.

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值