首页 > 试题广场 >

有以下程序 #include ...

[单选题]

以下程序的运行结果是()

#include <stdio.h> 
int main() { 
    int sum, pad,pAd; 
    sum = pad = 5; 
    pAd = ++sum, pAd++, ++pad; 
    printf("%d\n",pAd); 
}
  • 5
  • 6
  • 7
  • 8
由于赋值运算符优先级>逗号运算符优先级,所以
pAd = ++sum,pAd++, ++pad;  等价于 (pAd = ++sum),pAd++, ++pad; 
执行完上面语句后,sum=6,pAd=7,pad=6
发表于 2020-04-17 23:07:04 回复(2)
这题目除了挖牛角尖,意义不大,实际当中有谁会这么写代码,会被人骂死
发表于 2020-02-08 14:39:35 回复(3)

B

只有一个++pad进行了改变5+1=6
发表于 2019-11-01 14:31:46 回复(0)
逗号运算符的结合性是左结合,从左向右计算后,分别得到:

step1.计算 pAd = ++sum ,得到 pAd = 6 ; sum = 6

step2.计算 pAd++ ,得到 pAd = 7;

step3.计算 ++pad, 得到 pad = 6;

逗号运算的最终结果:最后一个表达式的值,即 ++pad 的值,为6

但由于本题逗号运算过程中,没有用到括号,因此逗号运算得到的最终结果没有赋值给pAd

所以pAd的值应当为 step2 中计算所得,pAd = 7

如果没看懂,请看更详细的剧情讲解:(6条消息) C语言百炼成神·第一日·操作符_kikokingの比特宇宙-CSDN博客
发表于 2022-01-23 19:14:24 回复(2)
赋值运算符优先级>逗号运算符优先级
发表于 2022-03-12 15:26:36 回复(0)
赋值运算符优先级>逗号运算符优先级
发表于 2023-10-27 11:40:30 回复(0)
这就是八股吗?
发表于 2022-09-17 22:46:02 回复(0)
(pAd = ++sum), pAd++, ++pad;
发表于 2022-06-08 09:15:10 回复(0)
逗号运算符优先级最低,所以先执行=  ,再执行逗号运算符
发表于 2022-02-26 20:31:19 回复(0)
#include <stdio.h> main() { int sum, pad,pAd; sum = pad = 5; pAd = ++sum,pAd++, ++pad; printf("%d\n",pad ); } 解: 逗号表达式:*优先级最低 *求值顺序从左向右 *最后一个表达式值为逗号表达式的值 1、++sum先自增在赋值给pAd,pAd自增1为7,pad自增为6,逗号表达式整体值为6 2、pAd=(pAd = ++sum,pAd++, ++pad) ; 则pAd=6 </stdio.h>
发表于 2021-05-28 11:07:01 回复(0)

请问pAd的值是7吗

发表于 2020-03-27 14:05:33 回复(1)
pAd = ++sum,pAd++, ++pad; 
这是啥玩意咋还逗号了
发表于 2020-03-02 20:55:17 回复(1)
定义变量时不能连续赋值,但sum pad之间没有相等的联系,于是sum加1后,pad没有跟着加1,它只自➕一次
发表于 2019-11-22 00:00:47 回复(0)

pad 赋值后只执行了一个自增

发表于 2019-06-25 00:05:39 回复(0)