扫码关注官方订阅号
自增自减运算符只能对变量生效,对常量无法使用。那么即是说:int a=1;a++;这样是可行的,而1++;是false的。那么有个疑问int[] a=new int[100];a[3]++;这样确实可行的,是为什么呢?a[3]不是一个常量0吗?
int a=1;
a++;
1++;
int[] a=new int[100];
a[3]++;
a[3]
0
业精于勤,荒于嬉;行成于思,毁于随。
a[3]的值是0,但a[3]本身是个变量
a[3]=0 变量=值
说实话,建议少用++之类的运算符。比如:
(++i)+(i++)+(i++)+(i++)
同样的代码用不同的语言,不同的编译环境,不同的运行环境,可能会有不一样的结果。(编译器优化效果的不同,CPU架构的不同等等原因)
a++写成a = a + 1,不就清晰多了?1++就是1 = 1 + 1,发现错误了没?a[3] = a[3] + 1,没问题吧?
我就是在说你"痛恨"的东西啊。。。index++;这哪儿看不懂了
if (index++ < 128) {......} // 用++运算符的写法1 if (index < 128){ //不用++的写法2 index = index + 1; ...... }
哪一个更简洁自行判断。当然前面说了i++ + ++i + i++;这种东西本身就是UB,早就该拖出去打死了。。。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
a[3]的值是0,但a[3]本身是个变量
说实话,建议少用++之类的运算符。
比如:
同样的代码用不同的语言,不同的编译环境,不同的运行环境,可能会有不一样的结果。
(编译器优化效果的不同,CPU架构的不同等等原因)
a++写成a = a + 1,不就清晰多了?
1++就是1 = 1 + 1,发现错误了没?
a[3] = a[3] + 1,没问题吧?
我就是在说你"痛恨"的东西啊。。。
index++;
这哪儿看不懂了
哪一个更简洁自行判断。
当然前面说了
i++ + ++i + i++;
这种东西本身就是UB,早就该拖出去打死了。。。