关于变量的各种运算自增(自减)总结:
来源:互联网 发布:数据修真 编辑:程序博客网 时间:2024/05/22 02:04
我们以i++(i=3)为例子:
我们知道i变量的值存在栈中(我们以局部变量为例),它占用4个字节的内存(32位机),自加就是将变量i这个内存的值加1再存入这个内存中。
1.
i++、++i运算之后,i的值都为4,但是表达式i++的值为3,++i的值为4;
i++是先取i的值作为表达式的值,再自加;++i是先自加,此时i的值为4,再将i的值作为表达式的值。
2.i++*i++
此表达式的值为9;
根据优先级,先i*i,然后,两次i++、i++,两个i变量时同一块内存。最后i的值为5;
3.i++*++i
此表达式的值为16;
先‘*’右边的i自加,此时i的值为4,然后i*i,最后i再自加,最后i的值为5;
4.++i*++i
此表达式的值为25;
‘*’两边的i先自加,此时i的值为5,然后再i*i;
自减运算也同理。
附:验证程序如下
#include<stdio.h> int main() { int i; int b; i=3; printf("%d %d\n",i++*i++,i);//3*3 i=3; printf("%d %d\n",i++*++i,i);//4*4 i=3; printf("%d %d\n",++i*++i,i);//5*5 }
程序运行结果:
- 关于变量的各种运算自增(自减)总结:
- 变量的自增、自减、自乘、自除运算
- 关于自增自减:C、C++自增自减运算符的研究
- 关于自增自减运算符的一些问题
- 关于自增、自减运算符的笔记
- 关于自增自减运算符的一些问题
- 关于JAVA中单目运算符自增(++)自减(--)的分析
- 关于java里面的自增自减运算(i++和++i)
- 关于自加,自减的小总结(初级)
- 10.6考察自增自减、修饰符、类变量的调用、成员变量的调用、运算符的优先级、鲁棒性、异常总结
- 自增(自减)运算符
- Java自增运算符和自减运算符,在变量前和变量后的区别。
- 变量的自增、自减、自乘、自除
- 关于数学运算符的自加和自减
- 自增、自减运算
- 自增自减运算
- 自增、自减运算
- 自增自减运算
- spring集成jotm实现JTA分布式事务管理
- Linux驱动学习记录 devfs_mk_cdev
- 数独:9行9列表格,各行各列都填上1-9,且各行各列不能有重复数字
- .net后台生成meta 并控制meta在head里顺序
- Unity3D Shader官方教程翻译(五)----Shader语法:Pass
- 关于变量的各种运算自增(自减)总结:
- primary key与unique的区别
- linux更改主机名
- 数理逻辑:公理化算术(10)算术函数性质的公理可推出性与含义可推出性
- ConcurrentHashMap
- Unity3D Shader官方教程翻译(六)----Shader语法:Pass的Color, Material, Lighting
- oralceDB:数据库名、实例名、数据库域名、服务名、操作系统环境变量
- cin cout 快速输入输出(效率优化)
- 奇怪了:通知的委托方法必须在注册通知的 后边,除非有声明 ios6