小程找工作之->c语言的运算符
来源:互联网 发布:黑马程序员52期百度云 编辑:程序博客网 时间:2024/05/18 01:43
C语言的运算符可以分为三个大类:算术运算符、关系运算符、逻辑运算符。主要内容就是运算符的优先级,以及一些其他的细节问题。下面就做一个小小的总结和整理。
运算符优先级的基本规则:优先级不同:优先级高的先运算,优先级相同:从左至右运算;另外后缀运算符优先级大于前缀运算符优先级。因此++i++运算规则为 ++(i++)。
如何快速分辨出运算符的优先级?基本优先级规则 算术运算符>关系运算符>逻辑运算符>赋值运算符>逗号运算符
十六级运算级:
一级运算符:常量,标识,字符串常量,括号表达式()。
二级运算符:后缀表达式,紧跟在变量后面的运算符,主要有"++,--,.,->,[],()"几种运算符,另外一个需要注意的地方就是复合初始化运算符(type-name){};
三级运算符: 单目运算符,紧跟在变量前面的运算符,主要有 取正取负:‘+’,‘-’,取地址,解析地址(不是乘):‘&’,‘*’;前缀自增自减运算符:++,--;逻辑运算符:‘~,!’。sizeof()运算符
Attention:二级运算符和三级运算符之间通常会有以下几个点需要注意的地方
1:后缀++和前缀++运算符的区别和联系:i++和++i的区别在于1>:i++返回原先i的值(但i的值已经改变为i+1),而++i返回i+1(i的值已经变化);2>在C语言中i++和++i返回的均是左值,3>在C++中由于存在运算符重载,++i返回的是一个左值,而i++返回的是一个右值,因此i++不能作为一个左值来使用,而++i作为左值使用的时候只会报warning,常用的如赋值,自增自减取地址等等,我们需要在很多场合来判断表达式的合法性。常见的有以下几个方面:
(1)++i++; i++ = 3; *p = &i++;**p = &p++;这些均是不正确的表达式;(在C和C++中均会报错)
(2)诸如:++i = i++;的问题在C中会报错,在C++中只会报warning;
(3)int x = 2; int y = ++x+x++; y=7;(在执行x++后x的值已经改变为4,输出的时候前面的x变为4);
(4)总而言之:任何对于++i的操作均会立即反应在i身上,任何对于i++的操作都不会立即反应在返回值身上;
(5)i++和++i的优先级是不一样的,i++优先级更高;
(6)在声明指针类型的时候 int *p[4],此时p的运算规则是先跟右边的[]运算符结合,标识p是一个数组类型,而后再跟*运算符结合,因此p声明为一个4个int型指针的数组 而 int (*p)[4],先声明p是一个指针,再结合,声明为一个指向4个整型变量的数组
四级运算符:强制转换符 (转换类型)变量类型
五级运算符:乘法除法取余
六级运算符:加法减法;
七级运算符:移位运算符
八级运算符:关系运算符(注意比相等不相等运算符高一个级别)
九级运算符:相等不相等运算符
十到十二:位与 位异或 位或
十三到十四:逻辑与逻辑或(注意判别式中的前置位为真假后置位不判断的情况)
十五到十七:三元赋值逗号。
- 小程找工作之->c语言的运算符
- C 语言之运算符
- C语言之运算符+-*/%、++、--
- C语言之运算符
- c语言之运算符
- C语言的运算符
- C语言的运算符
- C语言的运算符
- C语言的运算符
- c语言的运算符
- C语言的运算符
- C语言的运算符
- C语言的运算符
- C语言的运算符
- C语言的#运算符
- C语言的运算符
- c语言之运算符的优先级快速记忆
- 小白学习c语言之基本数据类型,运算符,基本语句
- UI06-UIView视图层次关系
- centos 安装nginx与ftp
- Android高德地图如何让所有的轨迹在屏幕范围内都显示出来.
- Settings源码分析
- angularJS的$watch失效问题的解决方案
- 小程找工作之->c语言的运算符
- winfrom 程序打包成一个exe(伪绿色版)
- 用文件操作实现的通讯录
- x:Key的用法
- LeetCode 206. Reverse Linked List
- Oracle的Sql语句一些知识点(1)
- day7数组以及冒泡排序
- Serverless 是什么?又不是什么?
- NLP with deep learning(一) word2vec——词向量和语言模型