自增自减运算符只能对变量生效,对常量无法使用。
那么即是说:int a=1;
a++;
这样是可行的,而1++;
是false的。
那么有个疑问int[] a=new int[100];
a[3]++;
这样确实可行的,是为什么呢?a[3]
不是一个常量0
吗?
自增自减运算符只能对变量生效,对常量无法使用。
那么即是说:int a=1;
a++;
这样是可行的,而1++;
是false的。
那么有个疑问int[] a=new int[100];
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,早就该拖出去打死了。。。
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
a[3]的值是0,但a[3]本身是个变量