论坛: 编程破解 标题: 关于逗号表达式值的问题 复制本贴地址    
作者: sniper167 [sniper167]    论坛用户   登录
int  a,b; 
          a=2,b=5,a++,b++,a+b;
我认为a=9
理由: 首先a=2, 
      then  b=5, 
      then  a++,(a=3  now) 
      then  b++,(b=6  now), 
      last  a+b. 
      整个表达是的值是最后一个即a+b=9
可是我在  vc里运行的结果是a=3,
请指教



地主 发表时间: 04-02-22 12:20

回复: afan271314 [afan271314]   论坛用户   登录
当然是三了  a=a+b这样运行才是九呢

B1层 发表时间: 04-02-22 12:34

回复: lan_se [lan_se]   论坛用户   登录
#include <stdio.h>
void main()
{
int  a,b; 
a=(a=2,b=5,a++,b++,a+b);
printf("%d\n",a);
}


你的这一行逗号表达式a=2,b=5,a++,b++,a+b;并没有把值赋给变量a


[此贴被 蓝色梦缘(lan_se) 在 02月22日22时13分 编辑过]

B2层 发表时间: 04-02-22 21:57

回复: lan_se [lan_se]   论坛用户   登录
举个例子:
(1) x=(a=3,6*3)
(2) x=a=3,6*a
第(1)个是一个赋值表达式,将一个逗号表达式的值赋给x,x的值等于18。
第(2)个是逗号表达式,它包括一个赋值表达式和一个算术表达式,x的值为3。

B3层 发表时间: 04-02-22 22:07

回复: sniper167 [sniper167]   论坛用户   登录
咦,晕死,脑壳进水了
这问题还拿出来问
这根本不是问题
是马虎所致
真是活该

B4层 发表时间: 04-02-23 22:01

回复: wuxiu [wuxiu]   论坛用户   登录
是啊,不知道是哪个白痴拿出来问的。
别人回答了,他才发现自己脑子进水了。
真是够厉害!

B5层 发表时间: 04-02-23 23:25

回复: sniper167 [sniper167]   论坛用户   登录
老兄此话何解?
我的意思是这个问题是我马虎所致,自己要是再仔细检查一下或是再看看,就会发现.却还拿出来问大家,耽误大家的时间了,我深表歉意,也责怪自己的马虎.感谢大家!!!
老兄请不要误解

[此贴被 啥都不会(sniper167) 在 02月24日12时22分 编辑过]

B6层 发表时间: 04-02-24 12:14

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号