C语言复习2_运算符
今天复习一下C语言的运算符
1、赋值运算符
单等号 =
顺序是:从右往左
2、复合运算符
#include <stdio.h>
#include <stdlib.h> int main()
{
int num = ;
num %= ;
printf("%d\n",num);
return ;
}
输出结果是:2
3、算术运算符
int num1 = , num2 = ;
double result1, result2, result3, result4;
result1 = num1 / num2;
result2 = num1 % num2;
result3 = num1++;
result4 = --num2;
printf("num1 / num2 = %lf\n", result1);
printf("num1 %% num2 = %lf\n", result2);
printf("num1++ = %lf\n", result3);
printf("--num2 = %lf\n", result4);
输出结果是:
num1 / num2 = 2.000000
num1 % num2 = 1.000000
num1++ = 5.000000
--num2 = 1.000000
其中,针对第3、第4条赋值语句,要注意以下情况:
int num = ;
int result = num++;
printf("result = %d\n", result);
输出结果是:result = 5
因为int result = num ++这个语句,++在语句的最后,相当于先执行int result = num,然后再执行num++,而上一段代码中,--在num2的前面,所以先执行num2 - 1,再执行result4 = num2语句
4、关系运算符
< > >= <= == !=
printf("5 > 8吗?%d\n", > );
printf("6 < 9吗?%d\n", < );
输出结果:
5 > 8吗?0
6 < 9吗?1
0表示假,1表示真
5、逻辑运算符

5、位运算符

5、sizeof运算符
测量数据类型所占空间
printf("整型所占空间是%d字节\n",sizeof());
输出:
整型所占空间是4字节
double所占空间是8字节
float所占空间是4字节
6、运算符优先级
()sizeof ++ -- > ! > 算术运算符 > 关系运算符 > && > || > 赋值运算符
int num = ;
int result = ++num > && --num < ;
printf("result=%d\tnum=%d\n",result, num);
输出:result=1 num=10
先算num+1,11>9为真;再算num-1,10<20,为真;最后算1&&1,等于1
printf("%d\n",!((+%*)>));
输出:0
C语言复习2_运算符的更多相关文章
- C语言复习————基本数据类型、运算符和表达式
数据类型/运算符/表达式 主要分两部分介绍,第一部分介绍常用的数据类型,例如:常量和变量/整型/实型/字符型:第二部分介绍算数运算符和算数表达式以及赋值运算符和逗号运算符. 一. 常用的数据类型 1. ...
- C语言复习20170728
C语言复习20170728 键盘输入和屏幕输出 字符常量:把字符放在一对单引号内,适用于多数可打印字符. 转义字符: 以反斜线()开头,也是放在一对单引号内,适用于控制字符. .\t,是水平制表符,相 ...
- C语言复习20170716
C语言复习20170716 C数据类型 图片来自:C语言基本数据类型简介 C语言程序处理的数据有常量和变量两种形式. 常量是在程序中不能改变其值的量.例如:整型常量.实型常量.字符常量.字符串常量和枚 ...
- c语言 &取地址运算符的理解
对于c语言中的&运算符,百度百科是这样定义的:(&p)则是这样一种运算,返回当时声明p 时开辟的地址:但是根据我对代码的观察,我觉得&运算符不只是返回地址的功能: 例如: in ...
- C语言基础学习运算符-赋值运算符
简单赋值 在C语言里,运算符=并不表示相等,而是一个赋值运算符.这意味着,符号=的左边该是一个可修改的变量名,而右边是赋给该变量的值. 如下程序语句: i = i+; 在数学上,该等式无法成立.而作为 ...
- c语言中逗号运算符和逗号表达式
原文:c语言中逗号运算符和逗号表达式 C语言提供一种特殊的运算符——逗号运算符.用它将两个表达式连接起来.如: 3+5,6+8称为逗号表达式,又称为“顺序求值运算符”.逗号表达式的一般形式为 表达式1 ...
- C语言按位运算符
C语言按位运算符 二进制反码或按位取反:~ 一元运算符~是逐位将1变为0,0变为1 Eg: ~(1001 1010) Result:(0110 0101) 按位与:& 二元运算符&是 ...
- C语言复习---零散补充
一:double和float使用scanf获取数据 printf输出float和double都可以用%f,double还可以用%lf. 2 scanf输入float用%f,double输入用%lf,不 ...
- C语言基础知识-运算符与表达式
C语言基础知识-运算符与表达式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.常用运算符分类 1>.算术运算符 用于处理四则运算. 2>.赋值运算符 用于将表达式的 ...
随机推荐
- ESP8266莫名重启或者死机问题
多半是内存使用不当 1. 如果你要用很大长度的数组,那么可以换用更小的数据类型.比如,int值要占用两个字节,你可以用byte(只占用一个字节)代替: 2. esp8266有时会莫明重启,大部分 ...
- 8266编译错误 xtensa-lx106-elf/bin/ld: segmentled section `.text' will not fit in region `iram1_0_seg'
一种简单的解决办法 Okay, the solution was to copy the libgcc.a file from: esp-open-sdk/ESP8266_NONOS/lib/ to ...
- 2-1、FileBeat入门
FileBeat入门 要开始使用Filebeat设置,请安装并配置相关产品: 用于存储和索引数据的Elasticsearch. 用户界面的Kibana. 用于解析和增强数据的Logstash(可选). ...
- laravel call传参
public function index(Request $request, ApplicationContract $app) { $type = $request->query('type ...
- listagg within group
oracle 多行合并成一行: listagg within group 可以和递归方法一起使用查询路径: 例如: SELECT LISTAGG(t.FOLDER_NAME, '/') WITHIN ...
- PADS Layout VX.2.3 制作PCB封装(Decal)时,导入DXF文件
操作系统:Windows 10 x64 工具1:PADS Layout VX.2.3 进入PCB封装编辑器(Decal Editor),点击Drafting Toolbar > Import D ...
- C++智能指针剖析(下)boost::shared_ptr&其他
1. boost::shared_ptr 前面我已经讲解了两个比较简单的智能指针,它们都有各自的优缺点.由于 boost::scoped_ptr 独享所有权,当我们真真需要复制智能指针时,需求便满足不 ...
- Caused by: java.lang.IllegalStateException: RedisConnectionFactory is required
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'redisTemplat ...
- python 将png图片格式转换生成gif动画
先看知乎上面的一个连接 用Python写过哪些[脑洞大开]的小工具? https://www.zhihu.com/question/33646570/answer/157806339 这个哥们通过爬气 ...
- Ubuntu 16.04.3 LTS u盘-安裝教程(填坑)
Ubuntu 16.04.3 LTS 下载地址: https://www.ubuntu.com/download/desktop 下载u盘后文件为iso,可以选择UltraISO制作U盘启动,也可以直 ...