printf("%d\n",-i++),如果i为1,那么输出是是多少输出后i为多少?
来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/08/17 12:21:10
printf("%d\n",-i++),如果i为1,那么输出是是多少输出后i为多少?
![printf(](/uploads/image/z/18259825-49-5.jpg?t=printf%28%22%25d%5Cn%22%2C-i%2B%2B%29%2C%E5%A6%82%E6%9E%9Ci%E4%B8%BA1%2C%E9%82%A3%E4%B9%88%E8%BE%93%E5%87%BA%E6%98%AF%E6%98%AF%E5%A4%9A%E5%B0%91%E8%BE%93%E5%87%BA%E5%90%8Ei%E4%B8%BA%E5%A4%9A%E5%B0%91%3F)
输出-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 这个说法。
![](http://img.wesiedu.com/upload/9/2a/92a61549e710674c83e9ff40c9f169fd.jpg)
再问: 但是取负与++都是单目运算,优先级都为2级且符合右结合方式呀?!
再答: 对的,我补充说明过了,++的变量的后面,所以应该是相当于-(i++); 所以应该先用变量的原值,再让变量自增 所以才有了: printf("%d\n",-i++); 相当于: printf("%d\n",-i);//此时i是原值1 i++;//此时i再自增,变成2 这个说法。
如果int i=3 则printf("%d",-i++)执行后输出是( )i的结果是 ( ) 4
如果int i = 4,则printf("%d",-i-- )的输出结果是( ),i的值是( ).A:-4 3 B:-3
int i=10;while(i--);printf("%d",i);则输出i的值__________
int i=(j=4,k=8,l=16,m=32); printf("%d",i); 输出是多少?
为神马printf("%u\n",123);输出的是123,而把u改成U后就输出U?
若一个栈的输入序列为1,2,3,…,n,输出序列的第一个元素是i,则第j个输出元素是_____.
以下程序段的输出结果是什么?: int =11; printf(''%\n'',i);
int i=(j=4,k=8,l=16,m=32); printf(“%d”,i);该语句的输出结果是多少?
int i=9999;printf("%d\n",printf("%d",printf("%d",printf("%d"
c语言试题求解答1.c语言中 int i=97; printf(“i=%d,%c\n”,i,i),输出结果是————2.
4.下述语句的输出为( ).Int x=-1; Printf(“%d,%u,
printf("%s\n",((i