自增运算符++和取内容运算符之间的关系
来源:互联网 发布:漫画封面设计软件 编辑:程序博客网 时间:2024/06/13 22:57
现有代码如下:
在C语言中,*的优先级和前缀++是属于一个(结合方向为从右向左),比后缀的++以及–的优先级高(结合方向为从左向右)~
int a[5] = {10,11,12,13,14};int *p, *q, b;p = a;
1.后缀++
p = a;
q = P++;
结果为:p指向a[1], q仍然指向a[0]后缀返回的是自增前的值。
2.前缀++
p = a;
q = ++p;
结果为:p指向a[1], q也指向a[1]前缀返回的是自增后的值。
3.*p++
p = a;
b = *p++;
p指向a[1], b的值为自增前的值即是a[0]即是10.
4. *(p++)
p = a;
b = *(p++);
结果同3,*和++的运算顺序为从右向左
5.(*p)++
p = a;
p = *++p.
p指向a[1],++p指向自增后的值,即p为a[1]的值,11。
6.*(++p)
p = a;
b = *(++p);
结果同5
7.++(*p)
p = a;
b = ++(*p);
p指向a[1], 只要有++它肯定就会变。b的值为a[0]加1后的值,因为是前缀,返回自增后的值。
8.++*p
p = a;
b = ++*p;
结果同7
总结一下原则:
前缀, 值为变化后,后缀, 值为变化前。
在C++中,建议除非必须,否则不使用后置版本的递增递减运算符。
其原因是前置版本的递增运算符避免了不必要的工作,把加1后的值直接返
回改变了运算对象。与之相比,后置版本需要先存储自增前的值,以便返回未修改的值。这是一种浪费。
阅读全文
0 0
- 自增运算符++和取内容运算符之间的关系
- 关于与运算和取余之间的关系
- 关于与运算和取余之间的关系
- 关于与运算和取余之间的关系
- 自增自减运算符的运算方式和codeblocks编译器的运算方式
- C语言杂谈(二)自增运算符++与间接访问运算符*的结合关系和应用模式
- 自增和自减运算符
- 自增和自减运算符
- 自增和自减运算符
- 模运算%和位与运算&之间的关系
- Java 自增“--”和自减“--”运算符的用法
- 对自增和自减运算符的提醒
- 自增、自减运算符的前缀和后缀
- 自增、自减运算符的运算
- 关系运算符和等于运算符
- ios开发-c语言之自增运算、sizeof、关系运算和逻辑运算的学习
- 自增运算符++
- 自增运算符
- RequestMapping
- 窗外阴天了
- Linux SPI总线和设备驱动架构之三:SPI控制器驱动
- lcd设备图像显示
- 死锁,Java简单示例
- 自增运算符++和取内容运算符之间的关系
- bmp图片解码
- 如何使用gitHub进行合作开发
- C++详解Leetcode:102. Binary Tree Level Order Traversal
- String的转换功能(重点)
- jpeg源码库移植到linux系统
- JAXBContext 解析尾随节中不允许有内容异常
- 菱形继承
- PX4flow中的汇编代码