运算符号
来源:互联网 发布:入骨相思知不知txt微盘 编辑:程序博客网 时间:2024/04/30 08:59
说实话,学编程有三四年了,对于运算符的问题还是一知半解的,表示非常悲剧;
今天又把这个东西拿出来总结一下:
运算符有两个特性,即优先级和结合性,应用场合也有两个:运算时和定义时;
运算时:
对于一个表达式,我们首先找出优先级高的运算符(b=a++,找出++),然后找出可以左右连接的同级运
算符放在一组(b=a*b*c+d*e,把前面两个*放在一组,后面一组),之后根据结合性进行计算:例如
b=a*b*c+d*e,先分为a*b*c和d*e两组,根据结合性,计算a*b,在*c;对于a=b=c;就需要从后面向前计
算了,因为=的结合性从右向左;这一级别算完了,进入下一级别;
定义时:
解析一些重要的例子,加深一下理解:
int (*p)():此为定义一个函数指针,p与*结合,再与后面的()结合
int *p();仅仅声明一个函数;因为p与()结合,使p变成函数名,int *为函数返回值;
int *p[] :[]优先级大于*,所以p是指针数组
int (*p)[]:为数组指针
我也突然意识到一个问题:()的存在只是为了提高优先级么?以前我一直这样认为,最近发现自己错
了,在某些时候,它也是起结合性的作用:int *(*p)(),在这个例子中,后面的括号就是起到结合性的
作用,是指针P变为函数指针P;还有 *;在运算的时候,它可以取指针指向的数据,在定义的时候,它
就是纯粹与变量结合,达到改变变量属性的作用;例如 :int **p;
还有++运算符返回的值为const类型,不能参与自身的运算:例如++p++是错误的;
- 运算符号
- 运算符号
- 运算符号
- 位运算中的符号运算
- C++运算符号优先级
- ?:运算符号妙用
- c语言运算符号
- c语言运算符号
- c语言运算符号
- (转)运算符号重载
- 【JavaScript】加号(+)运算符号
- matlab 符号运算
- Matlab符号运算总结
- linux 运算符号简介
- Matlab符号运算总结
- 符号运算表达式
- 位运算符号
- Matlab符号运算
- 使用smack API开发聊天系统
- C++类的内存地址存放问题
- 经典的机器学习方面源代码库
- C#多线程参数传递
- php中的常量
- 运算符号
- DataTable纵向记录转换成横向列显示,动态新增列及填充数据
- Android读写文件
- 在Linux上配置和实现SOCKS v5
- 常用牛人主页链接(计算机视觉、模式识别、机器学习相关方向,陆续更新。。。。)
- 深入分析C++引用
- 从谷歌宕机事件认识互联网工作原理
- 独立游戏开发者易犯的9大致命错误
- 使用标准文件流操作文件