运算时:相当于:k1=(k++);
k2=(k++);
k3=(++k);val=k1+k2+k3;显然:k1=2,k=3k2=3,k=4k3=5,k=5
k2=(k++);
k3=(++k);val=k1+k2+k3;显然:k1=2,k=3k2=3,k=4k3=5,k=5
解决方案 »
- C#能不能制作一种能安装reg文件的程序?如果能怎么制作
- 谁能解决这样一个难题:由于在Web页上不能显示TIF图片,我用VB做了一个OCX,放到Web页面上,但是,这个OCX只能作为客户端控件使用,怎么用它来访问服务器端的图片啊?
- 关于from窗体设计的问题??
- Visual Studio 2005 代码段
- C#如何生成数字字符的图形验证码图片,图形放到PictureBox1即可以?
- 控制台问题
- C# 数据库还原问题 请高手指教
- 请教高手C#怎么制作类似QQ游戏的安装包?
- DataSet处理
- 谁能介绍一个好点的c#的书籍下载网站啊?谢了!
- c#写的程序,如何做成限时版的?
- 什么情况下,子类的方法执行同时(之前)执行父类相同命名的方法?
vc是2+2+3
vc.net是 3+3+3
c#是 2+3+5是编译器的问题但我觉得这种算法不统一吗考试的时候 有这种题目你怎么添难道都算对?
(k++)+(k++)+(++k);
vc是从左到右执行 附值结束后再做k++
vc.net是 先全部做++k 附值结束后再做k++ (c的机制是这样的,,所以我支持这种)
c#是从左到右执行 取过值后就做k++这题目没正确答案,大家也不用争 :)
好问题!我明天帮你问问VC,C#微软的人。 看看是不是bug。
也请你通过微软的反馈中心反映这个问题。谢谢!
对于这个问题,从C语言的知识说,是C#正确的。++k和k++,所有的语言的实现方式都一样的。而且这个表达式用了()标记,强制了运算顺序,所以不会有问题的。
C# does have explicit rules around this behavior. (left to right)
C++ does not (problem of the C++ language, not the compiler)