最新评论

共3页: 1 2 3 下一页 
Re:幸运的Windows 7 Party 社区活动 ILoveWin7 2009-10-28 14:50  
[quote]张丹:羡慕啊,呵呵。Win7 北京发布会现场才抽出一个home版本的呢,楼主超级幸运啊![/quote] 汗,不要乱造谣;都是Ultimate的……
Re:幸运的Windows 7 Party 社区活动 张丹 2009-10-27 13:03  
羡慕啊,呵呵。Win7 北京发布会现场才抽出一个home版本的呢,楼主超级幸运啊!
Re:幸运的Windows 7 Party 社区活动 zhu_xj 2009-10-27 12:04  
呵呵~~ 你的本本和我的一样 但我还是VISTA啊 把你的共享一下吧 想装 不过我装测试版的时候 占用CPU就是高 最后还是装了VISTA SP1才感觉我的CPU使用正常了 不知道你装了正版的会不会这样
Re:幸运的Windows 7 Party 社区活动 皮皮狗 2009-10-27 10:58  
恭喜啊!
Re:幸运的Windows 7 Party 社区活动 Windie Chai 2009-10-27 10:08  
恭喜,呵呵。
Re:幸运的Windows 7 Party 社区活动 路过一下 2009-10-27 07:15  
为什么国内的程序员大多都是闷骚型,在网上一个比一个活跃,线下却很少见到笑容,尤其是在登台、合影的时候,一个比一个严肃,一个比一个没话说,真搞不清楚这算不算双重人格!
赶紧买彩票去吧~~哈哈
Re:幸运的Windows 7 Party 社区活动 James.Ying 2009-10-26 22:44  
羡慕啊
恭喜楼主 贺喜楼主,羡慕啊 呵呵
Re:幸运的Windows 7 Party 社区活动 Jeffrey Zhao 2009-10-26 22:20  
恭喜恭喜
Re:幸运的Windows 7 Party 社区活动 啊不才 2009-10-26 22:06  
@singleView 呵呵,很有意思,大家看看吧,我不说啥了 [url=http://home.cnblogs.com/80734/]http://home.cnblogs.com/80734/[/url]
Re:幸运的Windows 7 Party 社区活动 曹赛楠 2009-10-26 21:43  
看你写了不少博客哈,好同学噢 好好学习 天天向上啊~
Re:幸运的Windows 7 Party 社区活动 曹赛楠 2009-10-26 21:41  
羡慕死我啦,你们那边中奖率高啊,我那边 后面那排 中讲的很少噢,幸运啊,哈哈
Re:幸运的Windows 7 Party 社区活动 坤坤 2009-10-26 21:34  
呵呵,楼主那是相当的幸运啊,羡慕我等人啊!(*^__^*) 嘻嘻……
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……

谢谢啦!
对于@人鱼不会笑的分析我是认为很有道理的,但是在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出来的代码到编译生成另外代码。

另外,我个人观点来说,从语言来看,确实我个人更偏向应该查找和理解该语言的特性上。以上属于个人观点,不同意见的话,别砸我转头。让各位看官见笑了。
re: NotePad++很好用,但是我真的不想再用它了 杨正祎(阿一) 2008-05-28 23:23  
快来使用EditPlus吧。呵呵。。
@凯凯
谢谢你的帮助,这个问题解决了
我也遇到了这个问题,请问你解决了吗?
C# 中常量编译成IL代码时添加static修饰符。
re: 头次使用,感觉还不错~! 木风风 2008-02-16 16:10  
学习学习
>>至此,我的疑惑终于解决了,看来上学时没有学习编译原理真的是很大的一个遗憾啊,现在要通过自学补上了。

说出这样的话来,说明你还没有认识到这个问题的本质。看到这种问题,首先是看这段是什么代码(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);
}
}
}
在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  
 1using System;
 2
 3namespace ConsoleApplication1
 4{
 5    class Program
 6    {
 7        static void Main(string[] args)
 8        {
 9            int a;
10            int i = 3;
11            a = -i++;
12            Console.WriteLine("i after \"= -i++\" is {0}", i);
13            Console.WriteLine("but a is {0}", a);
14            Console.ReadKey();
15        }

16    }

17}

18
“-i++ ”中的++在赋值运算后才执行。
你可以试试“-++i”。
re: 再议(i=-i++)的真面目~~ 人鱼不会笑 2007-08-13 23:05  
开除?对项目开发无益?
不过我承认这样的代码也许可读性不高
但是我觉得想做个好的程序员就要重视语法和算法

你不要跟我说这样的代码没有意义,很难维护什么的,我绝对同意
但我想问一下各位:什么样的代码是好代码?
我想大多数人的回答是“好维护的代码就是好代码”,这句话绝对没错
对于一个初级程序员来说绝对没错,但是想往更高的层次走,这句话就“不够”了

那我们还需要什么?当然是“维护量少的代码”,说白了就是BUG少的代码
我们都知道程序员的经验越多,写的代码BUG越少,没人反对吧
为什么经验多BUG就少,还不是对语法和算法的深入了解让他们知道怎么避免一些BUG
所以有这样钻研精神的人才是真正适合做高级程序员的人
也不是能研究框架设计跟设计模式什么的就叫高级程序员
所以遇见这样的人我一定会留住,因为钻研精神跟死脑筋是两码事

另外钻研跟实际使用是两码事,人家也没说项目中要多写这样的代码
我在项目中偶而也会写这样的代码,只要注释好就行了
千万别说什么代码即注释之类的理论了,实际项目中是由不得你的
例如一个程序占用CPU2%内存256,客户觉得内存消耗比例太大,让你把内存消耗转移到CPU上,或者有相反的要求,你会做吗?

上面还有位兄弟说加括号,但如果是“m = (-n)++”,这样的代码是错的
re: (i=-i++)你真的了解这个表达式么? 人鱼不会笑 2007-08-13 22:11  
h = -(--h)
re: (i=-i++)你真的了解这个表达式么? 人鱼不会笑 2007-08-13 22:08  
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 += ",";
}
很久以前就有这种加密办法了:
所有的数据都分为加密后的数据+一个指向密钥的地址 两部分, 每次存取数据都动态加密。这种方法看似很美,结果没几天就有个牛人 提出了把指向密钥的地址改成ffffff的FF大法一切就都浮云了...
共3页: 1 2 3 下一页 

导航

公告


英文名:Bright Chen
MSN:czhgary@hotmail.com
QQ:15095488
Email:biser007@gmail.com

Bright Chen 的个人主页
Bright Chen 的Facebook资料
创建您的徽章


小D划词查询功能:......


跟小D每日学口语,别偷懒啊~!!


《荀子·劝学》:“不积跬步,无以致千里;不积小流,无以成江海。”

洛阳.NET俱乐部 MSN群: group114825@msnzone.cn

欢迎光临:


IT新闻:

昵称:啊不才
园龄:7年5个月
粉丝:5
关注:10
<2012年2月>
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910

统计

搜索

 
 

常用链接

最新随笔

我的标签

随笔分类(39)

随笔档案(38)

相册

Good Web

Super Bloger

积分与排名

最新评论

阅读排行榜

评论排行榜

推荐排行榜