最新评论
Re:幸运的Windows 7 Party 社区活动 ILoveWin7 2009-10-28 14:50
[quote]张丹:羡慕啊,呵呵。Win7 北京发布会现场才抽出一个home版本的呢,楼主超级幸运啊![/quote]
汗,不要乱造谣;都是Ultimate的……
羡慕啊,呵呵。Win7 北京发布会现场才抽出一个home版本的呢,楼主超级幸运啊!
呵呵~~ 你的本本和我的一样 但我还是VISTA啊 把你的共享一下吧 想装 不过我装测试版的时候 占用CPU就是高 最后还是装了VISTA SP1才感觉我的CPU使用正常了 不知道你装了正版的会不会这样
Re:幸运的Windows 7 Party 社区活动 Windie Chai 2009-10-27 10:08
恭喜,呵呵。
为什么国内的程序员大多都是闷骚型,在网上一个比一个活跃,线下却很少见到笑容,尤其是在登台、合影的时候,一个比一个严肃,一个比一个没话说,真搞不清楚这算不算双重人格!
Re:幸运的Windows 7 Party 社区活动 James.Ying 2009-10-26 22:44
羡慕啊
Re:幸运的Windows 7 Party 社区活动 Jeffrey Zhao 2009-10-26 22:20
恭喜恭喜
@singleView
呵呵,很有意思,大家看看吧,我不说啥了
[url=http://home.cnblogs.com/80734/]http://home.cnblogs.com/80734/[/url]
看你写了不少博客哈,好同学噢 好好学习 天天向上啊~
羡慕死我啦,你们那边中奖率高啊,我那边 后面那排 中讲的很少噢,幸运啊,哈哈
呵呵,楼主那是相当的幸运啊,羡慕我等人啊!(*^__^*) 嘻嘻……
Re:幸运的Windows 7 Party 社区活动 CoolCode 2009-10-26 21:30
爽啊
Re:幸运的Windows 7 Party 社区活动 MicroCoder 2009-10-26 21:11
我参加了成都的活动,没得奖。不过搞了一个win7的标签,贴在本本上了
re: 再议(i=-i++)的真面目~~ ::似水无痕:: 2009-06-04 00:40
有意义啊,不了解真面目怎么找错啊,基础不牢固的我想不在少数吧,确实,楼主费了很大劲,不如VS跑一下来的利索,呵呵
放首页就是被拍砖的,爱拍就拍,不拍关掉,哪那么多废话
re: KB937061和KB947738多次安装问题 啊啊啊啊啊啊啊啊啊啊 2009-02-06 18:03
不可以哦
re: KB937061和KB947738多次安装问题 leo.eastwood 2008-10-21 02:24
具体如何操作呢?能不能给出具体的dos代码?不是很会用extract命令和dos……
谢谢啦!
re: (i=-i++)你真的了解这个表达式么? vincent326 2008-08-30 00:19
对于@人鱼不会笑的分析我是认为很有道理的,但是在VS2005下得到的结果居然是4,我完全不明白VS的编译器是怎么处理这条语句的!
关于i=0;a=i++;很多人认为是先执行a=i;i+=1;我觉得这样的理完全是与C++的语法定义相违背的:
这里的优先级最高的是++,所以应该先计算i++;但是由于后缀式++返回的是一个临时对象(这个临时对象的值等于原值),这个临时对象再赋值给a.所以a=0,i=1;
后缀式++的实现方式:
const T operater++(int){
T tmp = *this;
++(*this);
return tmp;
}
前缀式++的实现方式:
T& operater++(){
*this+=1;
return *this;
}
对于以上两个实现2点说明:
1.后缀式++的参数没有任何意义,只是用来区分前缀式++的实现;
2.为什么要返回const对象,这是为了使i++++在编译时就被发现非法!因为i++返回一个const临时对象后,不能再对const调用++!
但尽管以上这个解释是我个人认为非常合理的解释,但却无法解释:
i=3;
i = -i++;
i的结果为4!!!
分析对以上的语句的汇编语句,居然是先执行i= -1;后再执行i++,这不是完全与C++定义的优先级相反了吗?
不知道有没有高人对此有更深的认识!!
有好的见解请与大家分享!
Email:03269011@163.com
你们买过多少本c语言语法书?
看过多少本?
又买过多少版本c语言语法书?
又了解多少版本的c语言语法?
书中自有黄金屋
忘祖呀
C#和C的语法不一样的
答案当然不一样
大家都是缺乏基本功 所谓的考试级也是不认真
多读读语法书 不会有二义的
*************************************
中国多IT民工 少程序员 传统 官本位
写了2 3年代码就是leader 呵呵 不用coding了
在座的有谁写过10年代码? 或见到过?
C#和C的语法不一样的
答案当然不一样
大家都是缺乏基本功 所谓的考试级也是不认真
@人鱼不会笑
i=3;
i=i*i++应该为9把,
i*i的值是9,存放到某一临时处,
i加1变为4
9的值再赋给i,覆盖i为4的值。
我认为答案应该是10把。虽然我不懂C#,我只了解C和C++
--引用--------------------------------------------------
Morrowind: 最好不要在blog里面加音乐,不是每个人都喜欢听音乐阅读的。*_*
--------------------------------------------------------
恩,好的,我把它改成非默认播放的吧
最好不要在blog里面加音乐,不是每个人都喜欢听音乐阅读的。*_*
@杨正祎(阿一)
看了你的视频讲解我真的感觉到editplus的强大,谢谢你提供那么好的视频
多看总是无害的。我觉得看“语言操作符的优先级和结合性“和”看生成的汇编码(或者IL码)“都是途径。也不能说和编译原理一点关系都没有。语言本身的定义比如操作符和结合性就属于”程序设计语言和编译“的范畴。语言的定义本身就会涉及到从code出来的代码到编译生成另外代码。
另外,我个人观点来说,从语言来看,确实我个人更偏向应该查找和理解该语言的特性上。以上属于个人观点,不同意见的话,别砸我转头。让各位看官见笑了。
C# 中常量编译成IL代码时添加static修饰符。
re: 头次使用,感觉还不错~! 木风风 2008-02-16 16:10
学习学习
re: (i=-i++)你真的了解这个表达式么? dohkoos 2007-10-31 13:03
>>至此,我的疑惑终于解决了,看来上学时没有学习编译原理真的是很大的一个遗憾啊,现在要通过自学补上了。
说出这样的话来,说明你还没有认识到这个问题的本质。看到这种问题,首先是看这段是什么代码(C++, Java, C#还是其它),然后找到这种语言的Specification,查找该种语言操作符的优先级和结合性,只有根据优先级和结合性来分析这段代码才能有正确的结果。
note:这和编译原理一点关系都没有。
re: 再议(i=-i++)的真面目~~ lbq1221119 2007-10-19 22:38
那么后面一个为什么没有这种拷贝哪,我想是因为,在后一个代码中i不需要参加其他的运算,也就是说i++中的i一旦参与了其他的运算,就会通过dup指令产生一个拷贝。
这里,你说错了.
具体的实际情况,参见我的blog哈,
lbq1221119.cnblogs.com的一个il语言实例详细诠释.
为什么不贴链接过来捏?因为我正在写 呵呵
re: 再议(i=-i++)的真面目~~ 过路人 2007-09-22 16:44
我不明白,作者本是自己做试验验证运算符优先级,又不是在炫耀他能够写这样的代码,也不是在某个项目中写这样的代码,前面这里为什么那么多人认为作者该开除呢?真要这么说的话,《Effective C++》或者《深度探索C++对象模型》的作者大概是没有脸在C++上混饭吃了。
@啊不才
其实不会有好大得复杂度,
我这样看考虑得,比如 现在起点在(1,1)这个点,我把周围得所以可以走到得点都遍历完,并且标明我在第几天访问它得。在以后得遍历中,我发现这个点已经被访问过了,就不去处理他,以为在这以前其中一天已经访问过这个点了。
所以没有必要去访问它(这里等于剪枝)
我觉得你这样想的解决思路还是不是很完善,我对算法不是很懂(没细学过算法...)
这个问题我也是在程序员上看到的,我说几句看对你们有没有什么启发。
国际象棋里面马的规则是这样描述的,就是马向它可以的四个方向前进两步然后向左或向右走一步,就是“日”字。在国际象棋的棋盘里面有分黑格和白格,如果马起点在黑格,走出去之后落点一定会是白格
@xsy
我这里之所以会采用level来存储每一层的因为,主要是为了从性能上考虑,因为在这颗树中,它可是8^n的增长级别啊,1,8,64,512,4096,32768……,增长速度是很快的,同时要是出现马在绕圈子的跳就更可怕了(因为没有检测它是否绕圈子),因此利用level就好像起到截断的作用,每增加一层就判断一次,看是否到达地点,一旦到达就停止,可以减少不必要的疯狂的树增长。
因此无论采用深度优先还是广度优先都会是一个很大的树,在某些极端的情况下效率会很低的。
广度优先遍历不就可以解决吗,你太复杂了吧。
boolean ifCanMoveNextSpace(int x,int y) {
if ((x < 0 || x >= m || y < 0 || y >= m)) {
return false;
}
return true;
}
void calDays(int x,int y,int currentDays,int[][] days) {
for (int i = 0; i < 8; i++) {
int cx = x + direction[i][0];
int cy = y + direction[i][1];
if (ifCanMoveNextSpace(cx,cy)){
if (days[cx][cy] == -1) {
days[cx][cy] = currentDays;
}
}
}
for (int i = 0; i < 8; i++) {
int cx = x + direction[i][0];
int cy = y + direction[i][1];
if (ifCanMoveNextSpace(cx,cy)&& days[cx][cy] == currentDays) {
calMinDays(cx,cy,currentDays + 1,days);
}
}
}
re: (i=-i++)你真的了解这个表达式么? alex_power 2007-08-29 17:57
在C中,Turbo C,VC6.0/2003 中运行的结果就是-2
C#,java中就是-3.
谁讲的都有道理,我建议这种用法最好回避,太难理解,容易歧义。
re: 再议(i=-i++)的真面目~~ Nicholas.Yuen 2007-08-14 04:09
至少我觉得有意义。我是个C#初学者。看了这文章理解更深刻。
re: (i=-i++)你真的了解这个表达式么? Nicholas.Yuen 2007-08-14 03:56
re: 再议(i=-i++)的真面目~~ 人鱼不会笑 2007-08-13 23:05
开除?对项目开发无益?
不过我承认这样的代码也许可读性不高
但是我觉得想做个好的程序员就要重视语法和算法
你不要跟我说这样的代码没有意义,很难维护什么的,我绝对同意
但我想问一下各位:什么样的代码是好代码?
我想大多数人的回答是“好维护的代码就是好代码”,这句话绝对没错
对于一个初级程序员来说绝对没错,但是想往更高的层次走,这句话就“不够”了
那我们还需要什么?当然是“维护量少的代码”,说白了就是BUG少的代码
我们都知道程序员的经验越多,写的代码BUG越少,没人反对吧
为什么经验多BUG就少,还不是对语法和算法的深入了解让他们知道怎么避免一些BUG
所以有这样钻研精神的人才是真正适合做高级程序员的人
也不是能研究框架设计跟设计模式什么的就叫高级程序员
所以遇见这样的人我一定会留住,因为钻研精神跟死脑筋是两码事
另外钻研跟实际使用是两码事,人家也没说项目中要多写这样的代码
我在项目中偶而也会写这样的代码,只要注释好就行了
千万别说什么代码即注释之类的理论了,实际项目中是由不得你的
例如一个程序占用CPU2%内存256,客户觉得内存消耗比例太大,让你把内存消耗转移到CPU上,或者有相反的要求,你会做吗?
上面还有位兄弟说加括号,但如果是“m = (-n)++”,这样的代码是错的
i=-i++
实际不用IL的,只是我们对这些运算符的理解不深
这句代码由三个运算符组成:=、-、++
这谁都明白
先说一下他们的优先级
“-”是一元运算符,而“++”是初级运算符,比“-”高一点点
“++”定义先计算后增长
注意:只是先计算,可没说赋值
“=”是赋值运算符,在这里面级别最低
所以
整个运算式从“++”开始计算,“++”让变量i先行计算
经取负计算得到值“-3”
上面有兄弟提到了,这个“-3”会另外存在一个地方,而不是真的把i的值改变了
再讲“++”,它是由两个连续的动作组成的,就是先增长再赋值给变量
这样i的值经“++”计算就变成了“4”
但是最后还有一个“=”运算,把之前保存的“-3”又赋值给了变量i
就把前的值给覆盖了
同理:我们把后“++”换成后“--”,得到的结果还是一样的
因为虽然“--”做了不同运算但最终还是被覆盖了
PS:这样的语句虽然可读性不高,但我在实际编程中还是会用到一些。比如“ = -(--h)”会得到“1,0,1,0,1,0”这样的结果,帮助我实现在两个状态之间连续变换,等等等等。以上只是我的经验之谈,希望对大家有帮助。
//把n = 0换成n = 3会有不同结果
int n = 3, m;
for (int i = 0; i < 10; i++)
{
m = -n++;
Label1.Text += n.ToString();
Label1.Text += ",";
n = m;
Label2.Text += n.ToString();
Label2.Text += ",";
}
re: 关于防止用游戏修改器修改游戏的想法。 猪头狗肉 2007-08-09 15:08
很久以前就有这种加密办法了:
所有的数据都分为加密后的数据+一个指向密钥的地址 两部分, 每次存取数据都动态加密。这种方法看似很美,结果没几天就有个牛人 提出了把指向密钥的地址改成ffffff的FF大法一切就都浮云了...