系统粉 > 电脑问答 > 其他问答

已解决C语言中的逗号表达式在实际例子中怎样使用呢?

提问者:死亡伊甸园  |  浏览次  |  提问时间:2017-02-05  |  回答数量:9

C语言中的逗号表达式在实际例子中怎样使用呢? 谭浩强《C程序设计(第三版)》一书中,“3.10 逗号运算符和逗号表达式”一节里有这样一个逗号表达式的例子:a=3*5,a*4。  我用一个小程序将这个表达式代进去,发现结果与谭浩强的结果是不一样的!void main(){ int a; a=3*5,a*4; printf(\"%d\\n\",a);}  结果:15  谭浩强的结果是60,这差距也大了点吧!!  不知道我这个程序那里出了问题,还望各位指教!!  谢谢!!

已有9条答案
乖娃娃二代

乖娃娃二代

回答数:190  |  被采纳数:54


这样a确实是15啊..
a = 3*5吗[s:460]

void main()
{
int a,b;
b =(a = 3*5,a*4);//这样取最后的表达式:a*4(前边的a=15了)
printf("%d\n",b);
}

[s:470]
2017-02-05 14:54:53
赞 19
江苏卫视组

江苏卫视组

回答数:174  |  被采纳数:16

逗号后面的根本就没有运算,而且编译时就把3*5替换成常数15了。
(1)
2017-02-05 14:31:16
赞 17
li724643252

li724643252

回答数:193  |  被采纳数:40

[s:469] [s:469] 偶也学习啦~
2017-02-05 19:47:00
赞 19
一身迷彩de爱恋

一身迷彩de爱恋

回答数:145  |  被采纳数:65

但是,2楼版主的贴图我没有看明白?!!
  什么意思??
2017-02-05 16:39:54
赞 14
萧何雨下追韩信

萧何雨下追韩信

回答数:17  |  被采纳数:137


mov dword ptr [ebp-4],0fh
这句是吧
是汇编的......
意思就是把15给ebp-4的地址!
0fh是十六进制的,十进制的就是15吗
前边的同计算......
也就是直接给当15了.....[s:470]
2017-02-05 13:47:17
赞 1
晶晶在微笑

晶晶在微笑

回答数:8  |  被采纳数:47

呵呵!只恨自己对“汇编”一窃不通啊!
  谢谢!

  不过,今天我再重新运行这个程序后,结果却又变成了:60!
  只是重新编译了一下,怎么又正确了呢??
2017-02-05 23:16:30
赞 0
hebe940

hebe940

回答数:198  |  被采纳数:1

可能是你之前编译了,改了后没编译就运行之前的了.......
2017-02-05 17:50:13
赞 19
海滨宸曦

海滨宸曦

回答数:36  |  被采纳数:4

之前也有几次类似的情况发生过:
  第一次运行时的结果是错误的,第二天再开机运行,又不明所以的结果成“对”的了!

  每次运行C程序,都是直接“ctrl+F9”啊?!!
2017-02-05 15:30:14
赞 3
rwj5218538

rwj5218538

回答数:127  |  被采纳数:93

谢谢各位!
  这个问题基本解决,每天打开电脑,都要先重复试试这个程序,看看自己能不能想到解决的办法。
  今天又试了试,结合昨天我另一个问题朋友们提供的思路……呵呵!
  终于算是有眉目了!

  在程序头加上:#include <stdio.h>
  一切OK了!!
2017-02-06 00:51:06
赞 12
相关问答
最新其他问答
解决方法