114. 以下程序运行后屏幕输出为( )

来源:3-3 自增与自减运算符

包小龙虾

2018-08-06 14:58

114. 以下程序运行后屏幕输出为( )。
#include<stdio.h>
void f(int i)
{
int a=2;
a=i++;
printf("%d,",a);
}
main()
{
int a=1,c=3;
f(c);
a=c++;
printf("%d",a);
}
A. 4,3
B. 3,3
C. 4,5
D. 3,5

我一直分不清是先++--先后关系,本来说++在后应该先求值再++的,结果分号又跟顺序点有关,我看了其他资料,
也没理清楚这关系,实在是不懂,拜托大神帮忙解析下,谢谢


写回答 关注

2回答

  • 包小龙虾
    2018-08-06 16:13:06

    有冲突啊,分号前要完成副作用不就说明++要在分号之前完成啊

  • 慕田峪9303960
    2018-08-06 15:25:33

    就是++在前,先加了再赋值,在到下一行,如果是a++就是说直接将a赋值下一行,然后给a加一,

    答案是B

    慕田峪930... 回复包小龙虾

    是的呀!但是++语句再前再后的规则就是这样,和你这个分号要结束语句不冲突,

    2018-08-06 16:00:04

    共 2 条回复 >

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926020 学习 · 20793 问题

查看课程

相似问题