作业帮 > 综合 > 作业

printf("%d\n",-i++),如果i为1,那么输出是是多少输出后i为多少?

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/26 05:10:01
printf("%d\n",-i++),如果i为1,那么输出是是多少输出后i为多少?
输出-1输出后i的值是2原因:取负的优先级比++高,同时由于++在变量后,所以printf("%d\n",-i++);相当于:printf("%d\n",-i);i++;输出后再自增 所以得出以上答案.
再问: 但是取负与++都是单目运算,优先级都为2级且符合右结合方式呀?!
再答: 对的,我补充说明过了,++的变量的后面,所以应该是相当于-(i++); 所以应该先用变量的原值,再让变量自增 所以才有了: printf("%d\n",-i++); 相当于: printf("%d\n",-i);//此时i是原值1 i++;//此时i再自增,变成2 这个说法。