i = 10;
printf("%d \n", ++i);
printf("%d \n", (++i)+1);
为什么(++i)+1是13
第一次执行后i=11
第二次先自增,为12,再+1,为13
有帮助望采纳
++i是先进行i加1,然后将其结果进行运算,所以第一个printf会输出11,i值为11
第二个printf时,++i又使得i加上1为12,printf是输出12+1,所以输出为13
希望对你有所帮助
你这两个都是++i啊,告诉你区别很好记,加号在前面就是先加i成为加完之后的值再被使用(使用指参与计算,被复制等),加号在后面是先被使用再自己给自己加了
我不学c的,用js表达一个意思
let i = 1;
console.log(++i)//2 先加完变成2之后输出,所以2;
console.log(i);//2
let b = 1;
console.log(b++);//1 加1成为2之前被使用输出,所以1
console.log(b);//2
i++ -> 先执行取值,再执行++
++i -> 先++,再取值
话说,纠结这个完全没意义,你想写一份通俗易懂的代码就必须抛弃赋值的同时取值这种操作
就算应付考试,这种i++,++i的题也不会超过2分,趁早丢一边,节省一点脑力
i = 10;
printf("%d \n", ++i); //先+再输出11
printf("%d \n", (++i)+1);//同理++i为12,12+1=13