运算符与表达式
来源:互联网 发布:centos7 安装python 编辑:程序博客网 时间:2024/05/18 01:08
混合运算:整型(包括int,short,long)、浮点型(包括float,double)可以混合运算。在进行运算时,不同类型的数据要先转换成同一类型,然后进行运算.
说明:
这种类型转换是由系统自动进行的
在进行赋值操作时,会发生类型转换
将取值范围小的类型转为取值范围大的类型是安全的
反之是不安全的
如果大类型的值在小类型能容纳的范围之内,则平安无事
但是,浮点数转为整数,会丢失小数部分,非四舍五入
反之,转换后的结果必然是错误的,具体结果与机器和实现方式有关。避免如此使用,好的编译器会发出警告
类型强制转换运算符“(类型)”
消除从大到小的警告
l = (long)i;
可以通过“(类型)表达式”的方式把表达式的值转为任意类型
强转时,你必须知道你在做什么
强转与指针,并称C语言两大神器,用好了可以呼风唤雨,用坏了就损兵折将
C的运算符有以下几类:
(1)算术运算符 (+ - * / %)
(2)关系运算符 (> < == >= <= !=)
(3)逻辑运算符 (! && ||)
(4)位运算符 (<< >> ~ | ∧ &)
(5)赋值运算符 (=及其扩展赋值运算符)
(6)条件运算符 (?:)
(7)逗号运算符 (,)
(8)指针运算符 (*和&)
(9)求字节数运算符(sizeof)
(10)强制类型转换运算符( (类型) )
(11)分量运算符(.->)
(12)下标运算符([ ])
(13)其他 (如函数调用运算符())
基本算术运算符: + - * / %
结合方向:从左向右
优先级: - ---->* / % -----> + -
说明:
“-”可为单目运算符时,右结合性
两整数相除,结果为整数;有一实数相除,结果为实数
%要求两侧均为整型数据
简单赋值运算符
符号: =
格式: 变量标识符=表达式
作用:将一个数据(常量或表达式)赋给一个变量
复合赋值运算符
种类:+= -= *= /= %= 《= 》= &= ^= |=
含义: exp1 op= exp2 exp1 = exp1 op exp2
函数符号() 数组下标【】
单目运算符
算数运算符
移位运算符
关系运算符
逻辑运算符
三目运算符
自增、自减运算符
作用是使变量的值增1或减1
如:
++i,--i(在使用i之前,先使i的值加(减)1)
i++,i- - (在使用i之后,使i的值加(减)1)
i++与++i的区别:
++i是先执行i=i+1后,再使用i的值;
i++是先使用i的值后,再执行i=i+1。
例如:
①j=++i; i的值先变成4, 再赋给j,j的值均为4
②j=i++; 先将 i的值3赋给j,j的值为3,然后i变为4
逗号运算符:将两个表达式连接起来,又称为“顺序求
值运算符“,如:
3+5,6+8
逗号表达式 的值为14
一般形式: 表达式1,表达式2
求解过程:
先求解表达式1,再求解表达式2。整个逗号表达式的值是表达式2的值。逗号运算符:将两个表达式连接起来,又称为“顺序求
值运算符“,如:
3+5,6+8
逗号表达式 的值为14
一般形式: 表达式1,表达式2
求解过程:
先求解表达式1,再求解表达式2。整个逗号表达式的值是表达式2的值。
格式输出函数
printf(格式控制字符串, 输出项表列);
输出若干个任意类型的数据
printf("a=%d b=%f", a, b);
格式输入函数
scanf(格式控制字符串, 地址表列);
scanf("%d,%f”, &a,&b);
%d或%i按十进制有符号整数输出,正数的符号省略
%u按十进制无符号整数输出
%o按八进制无符号整数输出(不输出前导0)
%x或X按十六进制无符号整数输出(不输出前导符0x)
%c按字符型数据输出
%s按字符串数据输出
%f按小数形式输出(6位小数)
%e或E按指数形式输出实数
%%输出%本身
%g或G选用%f或%e格式中输出宽度较短的一种格式,不输出无意义的0
m 表示数据占用的宽度,正整数
n 对实数,指定小数位数(四舍五入)
对字符串,指定实际输出位数
l 加在d、o、x、u前:输出长整型
加在f、e 、g前:输出双精度型
h 加在d、o、x 前:输入短整型
- 输出数据在域内左对齐(默认右对齐)
+ 指定在有符号数的正数前显示正号(+)
- 表达式与运算符
- 运算符与表达式
- 运算符与表达式
- 运算符与表达式
- 表达式与运算符
- 运算符与表达式
- 运算符与表达式
- 运算符与表达式
- 运算符与表达式
- 运算符与表达式
- 运算符与表达式
- 运算符与表达式
- 运算符与表达式
- 运算符与表达式
- 运算符与表达式
- 运算符与表达式
- 运算符与运算符表达式
- 运算符与表达式 运算符
- php 常看常记
- 选择排序—堆排序
- Java中的内存分配以及栈和堆的区别
- 利用Intel VT实现进程保护
- 贝叶斯网络初识
- 运算符与表达式
- 设计模式--访问者模式
- Android数据安全之Base64编码
- bzoj4810: [Ynoi2017]由乃的玉米田
- VTK:多线条表示和渲染
- C语言 文件操作函数大全
- 实验3-huffman编解码
- java-正则表达式判断手机号
- 通俗易懂地讲解TCP建立连接的三次握手和释放连接的四次挥手