C和JAVA中递增递减运算符的差异
参见英文答案 >
What is x after “x = x++”?????????????????????????????????????17个
>???????????? Why are these constructs using pre and post-increment undefined behavior?????????????????????????????????????14个 请考虑以下声明: int a[]={1,2,3,4,5,6,7,8}; int i=0,n; n=a[++i] + i++ + a[i++] + a[i] ; 根据我的逻辑,n应该是10.但是我在c中得到不同的输出(输出是7) 这是我的确切c和java代码: #include <stdio.h> int main() { int a[]={1,8}; int i=0,n; n=a[++i] + i++ + a[i++] + a[i] ; printf("%d",n); getch(); return 0; } 输出的Java代码:10 public class HelloWorld{ public static void main(String []args){ int a[]={1,8}; int i=0,n; i=0; n=a[++i] + i++ + a[i++] + a[i] ; System.out.println(n); } } 解决方法
关于C99
draft standard 6.5.2中的C:
它引用以下代码示例为未定义: i = ++i + 1; a[i++] = i; 该部分在draft 2011 standard中也是相同的,但它看起来有点尴尬.这是sequence point的一个很好的参考. 第
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |