??xml version="1.0" encoding="utf-8" standalone="yes"?>青青青伊人色综合久久,久久亚洲中文字幕精品一区,午夜视频久久久久一区http://www.shnenglu.com/Geek/换了个地址Qhttp://www.cnblogs.com/vizhen/ zh-cnWed, 07 May 2025 13:56:15 GMTWed, 07 May 2025 13:56:15 GMT60【Ubuntu技巧】经常换主题Q可怎么换回来呢Q?/title><link>http://www.shnenglu.com/Geek/archive/2011/06/09/148373.html</link><dc:creator>Geek.tan</dc:creator><author>Geek.tan</author><pubDate>Thu, 09 Jun 2011 12:35:00 GMT</pubDate><guid>http://www.shnenglu.com/Geek/archive/2011/06/09/148373.html</guid><wfw:comment>http://www.shnenglu.com/Geek/comments/148373.html</wfw:comment><comments>http://www.shnenglu.com/Geek/archive/2011/06/09/148373.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/Geek/comments/commentRss/148373.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/Geek/services/trackbacks/148373.html</trackback:ping><description><![CDATA[<p>其实很容易,在个人的ȝ标。然?br>rm -rf   .gconf</p> <p>q样p?在重新启?是不是面杉K恢复成默认的啦?/p> <p>如果q不?那就</p> <p>rm -rf .gconfd</p> <p><br>1、不心误删面板的恢复方?br>  <br>Linux代码  收藏代码</p> <p>    gconftool --recursive-unset /apps/panel  <br>     rm -rf ~/.gconf/apps/panel  <br>    pkill gnome-panel  </p> <p> </p> <p>2、不心更改默认主题风格的恢复方?br>Linux代码  收藏代码</p> <p>    rm -rf /home/你自q用户目录/.gconf*  <br>     sudo reboot now  </p><img src ="http://www.shnenglu.com/Geek/aggbug/148373.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/Geek/" target="_blank">Geek.tan</a> 2011-06-09 20:35 <a href="http://www.shnenglu.com/Geek/archive/2011/06/09/148373.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[Ubuntu技巧]解决TXT文档中文qhttp://www.shnenglu.com/Geek/archive/2011/06/09/148371.htmlGeek.tanGeek.tanThu, 09 Jun 2011 12:34:00 GMThttp://www.shnenglu.com/Geek/archive/2011/06/09/148371.htmlhttp://www.shnenglu.com/Geek/comments/148371.htmlhttp://www.shnenglu.com/Geek/archive/2011/06/09/148371.html#Feedback0http://www.shnenglu.com/Geek/comments/commentRss/148371.htmlhttp://www.shnenglu.com/Geek/services/trackbacks/148371.html    在Ubuntu下,l常双击文g使用默认的gedit打开文gQ但是文件编码是gb2312Q或者gbkӞ中文可能׃是显CZؓq?/p>

解决ҎQ?nbsp;  

Q?Q用gedit的打开菜单Q在选择文g的同Ӟ可以有选项选择~码Q这样可以保证打开的文件编码正,正确昄文g中的中文Q只Ҏơ有?br>  

Q?Q?如果l常使用gbk的编码,那么可以通过l端下面执行gconf-editor,然后选在apps下gedit-2下preferences下的encodings下的auto_detected,双击Q添加gbk~码Q同时gbk~码Ud到utf-8的后面,q个l节也很重要。否则有时候还是会成其他~码。出Cؕ码?
    

     推荐W二U方法,L之选?/p>

Geek.tan 2011-06-09 20:34 发表评论
]]>
不要困在自己建造的盒子?amp;mdash;&mdash;写给.NETE序?/title><link>http://www.shnenglu.com/Geek/archive/2011/02/26/140680.html</link><dc:creator>Geek.tan</dc:creator><author>Geek.tan</author><pubDate>Sat, 26 Feb 2011 02:40:00 GMT</pubDate><guid>http://www.shnenglu.com/Geek/archive/2011/02/26/140680.html</guid><wfw:comment>http://www.shnenglu.com/Geek/comments/140680.html</wfw:comment><comments>http://www.shnenglu.com/Geek/archive/2011/02/26/140680.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/Geek/comments/commentRss/140680.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/Geek/services/trackbacks/140680.html</trackback:ping><description><![CDATA[<p><strong>原文链接Q?a >http://www.cnblogs.com/leoo2sk/archive/2011/02/24/dotnet-box.html</a></strong> <p><strong>此文章的L是希望过于专?NETE序员在做好工作、写?NETE序的同Ӟ能分拨出一Ҏ间接触一?NET之外的东西(例如10%-20%的时_Q而不是鼓动大家什么都d最后什么都学不_,更不是说.NET不行或劝大家攑ּ.NET。恕我愚钝,此主旨在文中表达不够清楚Q看评论中很多朋友误解了Q特此说明?/strong> <p><strong>另外Q本文中的观点ƈ不全部是我个人的xQ相当一部分来自我以前聊q天的某些大牛,他们很多来自微Y、百度、腾讯等知名企业Qƈ且很多已l成为技术骨qԌ我曾l从他们那里受益匪浅Q于是我把他们的指教l合自n的经验和理解写成此文。这是此文的来源?/strong> <p>------------------------------------------------------------华丽的分割线------------------------------------------------------------ <p>在给q篇文章h题的时候,我斟酌了很久Q因为我个h是反对用?NETE序员”、“C++E序员”或“PHPE序员”这cȝ单粗暴的方式为程序员做划分的。但是客观确实存在一个现象,是很多E序员会p|一个无形的界限Q将自己与某U语a或^台硬l定CP例如我这里所指的?NETE序员”。请注意q与“术业有专攻”是不同概念的,有自׃ȝq_或领域这很正常,但是有很多h偏执地将自己与某个语a或^台紧紧捆l,而忘C自己首先是一名程序员Q然后才使用某种语言Q他们偏执于q_q醉于自己建立的盒子里Q而不愿主动去接触一些盒子外的事物,最l得自己无法进步? <p>从我个h的观点看Q本文中?NETE序员”是指具有如下特点的E序员群体: <ul> <li><strong>学习、工作的技术范围均局限于.NETq_及衍生,?NET之外的技术没有主动接触或学习的欲望?/strong> <li><strong>不断学习各种.NETq_上的库或框架Q如ADO.NETQASP.NET MVCQWPFQSilverlightQWCFQWPQEFQNHibernate…?/strong> <li><strong>工作无法qVisual StudioQ习惯于囑Ş化的工作环境?/strong> <li><strong>时常抱怨微软的技术更新太快,微Y开发^台包办太多以至于自己wh贬倹{?/strong> <li><strong>寚w向对象、设计模式、Y件架构等东西h极大的热情,宁可花大量时间编造各U“设计模式小故事”也不愿q旉了解一Ҏ鲜的东西Q如Unix下的IPCQ?/strong> <li><strong>对Java颇有微词Q觉得C我根本用不到Q至于PHPQ它能做到的.NET都能做到Q认为用Linux的大多在装|而Lisp、Lua、Eiffel马的都是Q云,我管它们q什么?/strong> <li><strong>认ؓ面向对象语言是E序设计语言的代名词Q命令式~程深入骨髓Q不太了解函数式语言或契U式语言是什么?/strong> <li><strong>?NET很多q了Q但感觉自己没什么突_没什么进步,成天搞些增删改查的劳什子?/strong> <li><strong>l常讨论或思?NET或Java或C或其它语a哪个好,搞哪个更挣钱q种问题?/strong></li></ul> <p>如果您有过3符合上q特征,我想我们可以聊一聊,因ؓ据我的观察,感觉博客园上q类朋友q是挺多的? <h3>希望我能做到旁观者清</h3> <p>有一个事实我惛_和大家澄清一下,其实<strong>.NET只是我的业余爱好</strong>。由于博客园主要偏重?NETq_Q且园子里的朋友寚w向对象、架构之cȝ颇感兴趣Q所以我写了很多关于.NET及架构方面的文章Q如果您注意观察Q会发现我博客里q类文章正减ƈ于消失Q,其实相对于设计、架构这cM西,我个人更感兴的是具体的U学与技术,例如各种~程语言的原理、应用及实现扩展Q操作系l原理,|络~程Q通信协议Q算法与数据l构Q数据挖掘,机器学习Q分布式{等Q语a斚w我比较喜Ƣ的是PHP、Python、Lisp{;而编E方面我更推崇Unix下的~程哲学和编E方法;我爱vim胜过VS无数倍? <p>因此Q?NET和C#我一直是作ؓ业余爱好来发展的Q希望这没有让Q何h觉得沮。很多朋友加我QQ或MSN问我关于.NET的问题,我经常答不上来,很多人或许觉得我不近人情Q但我其实是真的{不上来。例如我在博客中写过一pd关于ASP.NET MVC的文章,很多人是冲那pd文章加我的,但是其实ASP.NET MVC我只在beta版时摆弄q两个星期,然后再也没有碰q,所以后来很多朋友问我想关问题我是真的答不上来? <p>所以,在博客园q个?NET和架构之cMؓȝC֌Q我是半个旁观者吧Q我看到园子里很多朋友都把自q锢在自己创造的盒子里,所以我希望以旁观者的w䆾Q给q些朋友提几个徏议? <h3>每半q接触ƈ学习一门语a</h3> <p>有许多h通常觉得只要把一门语a学会学精pQ这个想法我觉得对了一半?strong>一个程序员应该有一门精通的语言Q但是还要不断学习新的语aQ当然不能太频繁Q,倒不是ؓ了以防哪天万一用到q门语言Q而是接触学习不同的语a会拓展程序员的视野?/strong> <p>如果你一直用C#Q试试LispQ你会惊叹于q有q样写程序的方式Q嗯Q看来我得去学学Lamda演算Q试试PythonQ你会惊讶于q有如此y优美的东西;试试LuaQ你会发现原来语aq能嵌入其它语言Q要不要为WOW写个外挂试试Q试试EiffelQ你会发现还有契U式~程q种ҎQ嗯Q什么?Java上有iContractQ那我要不要?NET实现一个?随着q种学习q程Q你的思维自然p拓展开了,而不是满脑子的Class?Object、MVC、OO…? <p><strong>其实学习语言不一定是学习没听说过的,许多您听到x长茧却从来没有深入学习的“老朋友?/strong>Q如C、PHPQ如果您l心学下来,也会得到许多意外的收莗? <p>例如在学C的过E中Q你会发C可能qUnix环境而把C学好Q你会接触POSIX和System VQ你会主动深入学习进E、线E、信受I/O、IPCQ你会接触TCP/IP协议。你会发现要学好Cq要理解计算机组成原理,你还会发现原来还有大端q个东西? <p>深入学习PHPQ你会发现PHPq不仅仅是一个做Web的脚本语a那么单,你会了解到它SAPI、PHP Compiler和Zend Engine的优结构,你会发现有opcodeQ你会发现PHPn都是扩展点,你可以扩展功能,扩展Compiler和Zend EngineQ甚臛_以完全实现自q~译和运行逻辑。你会了解APC是如何缓存opcodeQAPD是如何跟tPHP的运行? <p>每次学习一门语aQ你会发现这不是一门语aQ而是一个崭新的新大陆,里面有太多让人兴奋和新奇的东西,而如果你执意锢在?NET盒子”里Q你永q不会知道这些? <h3>dH破自己 接受更多挑战</h3> <p><strong>如果什么东襉K是用到才学,代码都是有用才写Q那我只能非常抱歉的说你q不是个E序员,而只是个代码工h?/strong>E序员应该有d出击的意识,应该对自己未接触的领域有无限向往。幸q的是,互联|上的胦富实在太多了Q你应该其所能去接触学习未知的东西,而不要L我学习这个东西能不能换来q孩子买尿布和奶粉。你可以有很多借口Q但是我惌Q?strong>借口xL有的Q时间想找也L有的Q还是看自己到底要什么?/strong>不要一边h在盒子里一边又抱怨自己没有进步? <p>例如<a >Google Publication</a>Q这里有世界最优秀的Google工程师们理论和实늚ȝQ来读读q些伟大的论文吧Q看看这个伟大的公司和一伟大的人都q了些什么,了解一下Map Reduce是怎么回事Q如果了解了你自然想去试试HadoopQ还有Bigtable和GFSQ哦Q太震撼了,原来存储数据也有q么多讲IӞ不是攄盘里或通过Insert插入数据库就行了。也许这些英文论文读h很困难,但是我想一周一的要求q不高(我现在仍然保持着一周读两篇论文的习惯)。要知道Q最新、最严}的东襉K在论文里Q如果你只是通过书本或社区学习,那么你永q不会知道今天在计算机科学与技术的领域又发生了哪些令h震撼的事情,出现了哪些新奇的东西? <p>不要太懒惎ͼ你写增删Ҏ写篏了吗QCome onQ有没有惌自己写一个小型的httpdQ当然你需要先d习HTTP协议Q?a >rfc2612</a>Q,试试能不能写一个PHP的SAPI扩展令你的httpd处理PHP脚本。有没有惌自己用lex和yacc实现一个自q语aQ也不是完全没用Q也怽已经对你的领域业务逻辑烂熟于胸Q那么去实现一个自q领域语言吧。啊Q我要去学习~译原理、Ş式语a与自动机……咦Q这东西q挺有意思的Q去看看计算理论厠Z…如果到了这里,你已l开始接触计机的数学本质了Q而你的层ơ将会得到升华? <p>学习是q样Q主动突破自己,l自׃些挑战性的dQ生zL有趣。成天困?NET的盒子里Q我们还有脸U自׃ؓE序员吗Q? <h3>qIDE 玩玩U文本与shell</h3> <p><strong>从没用过IDE的程序员可能是悲剧,但从没脱过IDE的程序员l对是悲剧!</strong> <p>你有没有觉得自己来不像个“编E序”的而越来越像“堆E序”的。好的,即在工作时你离不开IDEQ那么业余时间让你的IDE滚蛋Q等{,你改用NotepadQ气L了你Q试?a >vim</a>?a >Emacs</a>Q体验一下用U文本写E序Q用gcc~译q接的乐。你会发现“yyp”比“选中一行,Ctrl+CQ点M一行v始位|,Ctrl+V”简单的多,你会发现按一下?”比?0ơ“左头”省事的多。等源程序多了,也许你会惛_学习Makefile的写法。你会莫名其妙地发现自己更懂~译和连接过E了? <p>怿我,用纯文本和shell写程序比用IDE酷多了,惛_引女孩子吗?你去问问你们班或你们公司最漂亮的女生,她也会这么想。重要的是,q种酷不是“装B”的P而是有效率的酗什么?你已l受不了IDE了…? <h3>接受更多的编E哲学与学习方式</h3> <p>注意我是用的“接受”而不是用“改变”,<strong>你不需要改变什么,?NETE序很好Q不q你可以适当吸取一下其它领域的~程哲学与学习方式?/strong>可以说WindowsQ特别是.NETQ程序员和UnixE序员思考问题的方式大不相同Q如果现在需要一辆汽车,WindowsE序员会建立一个从冉到装配的“All in one”汽车制造基圎ͼ而UnixE序员会d别徏立采矿场、冶铁厂、设计公司、材料制造厂、机械制造厂和装配厂。我不想讨论他们各自的优~点Q因为很Ҏ陷入无谓的宗教纷争)Q但是对于你来说Q了解一些其它的~程哲学对你没有坏处? <p>另外是学习方式Q例如你要学习PHPQ请千万不要M店购买各U?1天精通PHP》或《PHP~程宝典》,你应该首先打开GoogleQ找?PHP官网Q然后去官方文档哪里L学习资源。网上还有各UwikiQmailing lists和社区,请不要放弃这些资源。然后同时你可以?a >Amazon</a>看书评,然后心而}慎地选择一本相关的书籍Q媄印版最优,译版其ơ)? <p>一个h想突破自׃ҎQ关键在于自己有没有H破的意ѝ衷心希望有一天,您的脑中不再被ASP.NETQASP.NET MVCQWCFQWPFQADO.NETQSilverlightQEF……而占满,如果C那一天,你会发现Q咦Q!?NET的水q也大幅提升了!</p><img src ="http://www.shnenglu.com/Geek/aggbug/140680.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/Geek/" target="_blank">Geek.tan</a> 2011-02-26 10:40 <a href="http://www.shnenglu.com/Geek/archive/2011/02/26/140680.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>计算二进制中1的个?/title><link>http://www.shnenglu.com/Geek/archive/2011/02/24/140589.html</link><dc:creator>Geek.tan</dc:creator><author>Geek.tan</author><pubDate>Thu, 24 Feb 2011 08:12:00 GMT</pubDate><guid>http://www.shnenglu.com/Geek/archive/2011/02/24/140589.html</guid><wfw:comment>http://www.shnenglu.com/Geek/comments/140589.html</wfw:comment><comments>http://www.shnenglu.com/Geek/archive/2011/02/24/140589.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/Geek/comments/commentRss/140589.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/Geek/services/trackbacks/140589.html</trackback:ping><description><![CDATA[<p>~写一个函数返回数字的二进制位中?’的个数?/p> <p> </p> <p>Ҏ一Q递归</p><pre class="code"><span style="color: blue">int </span><span style="background: white; color: #010001">findOneinBin</span>(<span style="color: blue">int </span><span style="background: white; color: #010001">n</span>) { <span style="color: blue">if</span>(<span style="background: white; color: #010001">n</span><2) <span style="color: blue">return </span>1; <span style="color: blue">else return </span><span style="background: white; color: #010001">n</span>%2+<span style="background: white; color: #010001">findOneinBin</span>(<span style="background: white; color: #010001">n</span>/2); }</pre> <p>q个Ҏ很容易想刎ͼ如果是奇数的话就是他的n/2+1Q也是有一位加??.</p> <p>Ҏ二,google一下找出来的,没看?/p><pre class="code"><span style="color: blue">#define </span><span style="background: white; color: #010001">POW</span>(<span style="background: white; color: #010001">c</span>) (1<<(<span style="background: white; color: #010001">c</span>)) <span style="color: blue">#define </span><span style="background: white; color: #010001">MASK</span>(<span style="background: white; color: #010001">c</span>) (((<span style="color: blue">unsigned long</span>)-1) / (<span style="background: white; color: #010001">POW</span>(<span style="background: white; color: #010001">POW</span>(<span style="background: white; color: #010001">c</span>)) + 1)) <span style="color: blue">#define </span><span style="background: white; color: #010001">ROUND</span>(<span style="background: white; color: #010001">n</span>, <span style="background: white; color: #010001">c</span>) (((<span style="background: white; color: #010001">n</span>) & <span style="background: white; color: #010001">MASK</span>(<span style="background: white; color: #010001">c</span>)) + ((<span style="background: white; color: #010001">n</span>) >> <span style="background: white; color: #010001">POW</span>(<span style="background: white; color: #010001">c</span>) & <span style="background: white; color: #010001">MASK</span>(<span style="background: white; color: #010001">c</span>))) <span style="color: blue">int </span><span style="background: white; color: #010001">bit_count</span>(<span style="color: blue">unsigned int </span><span style="background: white; color: #010001">n</span>) { <span style="background: white; color: #010001">n</span> = <span style="background: white; color: #010001">ROUND</span>(<span style="background: white; color: #010001">n</span>, 0); <span style="background: white; color: #010001">n</span> = <span style="background: white; color: #010001">ROUND</span>(<span style="background: white; color: #010001">n</span>, 1); <span style="background: white; color: #010001">n</span> = <span style="background: white; color: #010001">ROUND</span>(<span style="background: white; color: #010001">n</span>, 2); <span style="background: white; color: #010001">n</span> = <span style="background: white; color: #010001">ROUND</span>(<span style="background: white; color: #010001">n</span>, 3); <span style="background: white; color: #010001">n</span> = <span style="background: white; color: #010001">ROUND</span>(<span style="background: white; color: #010001">n</span>, 4); <span style="color: blue">return </span><span style="background: white; color: #010001">n</span>; }</pre> <p>一下子看不明白Q先把宏展开来:<br>POW是计?的幂<br>MASK很奇怪,一个全1的无W号数字除以2的幂的幂?Q?br>好在打印出来q能看得懂: <p><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif">MASK(0) = 55555555 h = 01010101010101010101010101010101 b<br><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif">MASK(1) = 33333333 h = 00110011001100110011001100110011 b<br><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif">MASK(2) = 0f0f0f0f h = 00001111000011110000111100001111 b<br><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif">MASK(3) = 00ff00ff h = 00000000111111110000000011111111 b<br><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif">MASK(4) = 0000ffff h = 00000000000000001111111111111111 b <p>q些mask分别?2位数字划分ؓ几个部分。每个部分的前一半和后一半分别是?0'和全'1'?br>MASK(0)分ؓ16个部分,MASK(1)分ؓ8个部分,...<br>ROUND中对n的处理:(n & MASK) + (n >> POW & MASK)<br>POW的值刚好是MASK中连l?0'(或者连l?1')的长度。也是说ROUND把由MASK分开的n的各个部分中的高POW位和低POW位相加?br>Z便于说明Q取一个简单的部分QMASK(1)?011<br>假设n的gؓ1001Q那么ROUND后的l果是10 + 01 = 11 bQ把q个l果赋值给nQ这时n的含义由原来的二q制位串变ؓ'1'位的数量。特别的Q当ROUND(n, 0)Ӟ把n当作一?2个部分各?1'位的数量。('0'表示没有'1'Q?1'则表C有1?1'Q?br>计算完n = ROUND(n, 0)后,n是一?6个部分各?1'位数量的'数组'Q这?数组'的每个元素只?个二q制位。最大gؓ2Q够由2个二q制位来表示?br>接下来,计算完n=ROUND(n,1)后,n是一?个部分各?1'位数量的'数组'Q这?数组'的每个元素只?个二q制位。最大gؓ4Q够由4个二q制位来表示。(实际只需?个二q制位)<br>...<br>最后一步,计算n=ROUND(n,4)后,n是一?个部分各?1'位数量的'数组'Q这?数组'的每个元素有32个二q制位。最大gؓ32Q够由32个二q制位来表示。(实际只需?个二q制位)<br>q个代表32位内'1'位数量的32位二q制C是我们要求的结果? <img src ="http://www.shnenglu.com/Geek/aggbug/140589.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/Geek/" target="_blank">Geek.tan</a> 2011-02-24 16:12 <a href="http://www.shnenglu.com/Geek/archive/2011/02/24/140589.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>仓央嘉措http://www.shnenglu.com/Geek/archive/2011/02/19/140319.htmlGeek.tanGeek.tanSat, 19 Feb 2011 15:46:00 GMThttp://www.shnenglu.com/Geek/archive/2011/02/19/140319.htmlhttp://www.shnenglu.com/Geek/comments/140319.htmlhttp://www.shnenglu.com/Geek/archive/2011/02/19/140319.html#Feedback0http://www.shnenglu.com/Geek/comments/commentRss/140319.htmlhttp://www.shnenglu.com/Geek/services/trackbacks/140319.html声明:我神马都不知道,Ua是ctrl+c和ctrl+v.

W一最好不相见Q如此便可不相恋?br>W二最好不相知Q如此便可不相思?br>W三最好不怼Q如此便可不相欠?br>W四最好不相惜Q如此便可不相忆?br>W五最好不相爱Q如此便可不相弃?br>W六最好不相对Q如此便可不怼?br>W七最好不相误Q如此便可不相负?br>W八最好不相许Q如此便可不相箋?br>W九最好不怾Q如此便可不相偎?br>W十最好不盔RQ如此便可不相聚?br>但曾相见便相知,相见何如不见时?br>安得与君相诀l,免教生死作相思?/b>

 

?/strong>

你见Q或者不见我
我就在那?br>不悲不喜
你念Q或者不忉|
情就在那?br>不来不去
你爱Q或者不爱我
爱就在那?br>不增不减
你跟Q或者不跟我
我的手就在你手里
不舍不弃
来我的怀?br>或?br>让我住进你的心里
默然 相爱
寂静 Ƣ喜

 

?/strong>

住进布达拉宫Q?br>我是雪域最大的王?br>浪在拉萨街_
我是世间最的情郎?
我问佛:Z不给所有女子羞花闭月的定wQ?br>佛曰Q那只是昙花的一玎ͼ用来蒙蔽世俗的眼
我问佛:世间Z有那么多遗憾Q?br>佛曰Q这是一个婆娑世界,婆娑即遗?br>我问佛:如何让h们的心不再感到孤单?
佛曰Q每一颗心生来是孤单而残~的
我问佛:如果遇到了可以爱的hQ却又怕不能把握该怎么办?
佛曰Q留人间多少爱,qQ世千重变
我问佛:如何才能如你般睿智?
佛曰Q佛是过来hQh是未来佛
我问佛:Z么L在我悲伤的时候下?br>佛说Q冬天就要过去,留点记忆
我问?Z么每ơ下雪都是我不在意的夜晚
佛说:不经意的时候h们M错过很多真正的美?br>我问?那过几天q下不下?br>佛说:不要只盯着q个季节Q错q了今冬



Geek.tan 2011-02-19 23:46 发表评论
]]>
l构体与cR联合体的区?/title><link>http://www.shnenglu.com/Geek/archive/2011/02/15/140120.html</link><dc:creator>Geek.tan</dc:creator><author>Geek.tan</author><pubDate>Tue, 15 Feb 2011 15:04:00 GMT</pubDate><guid>http://www.shnenglu.com/Geek/archive/2011/02/15/140120.html</guid><wfw:comment>http://www.shnenglu.com/Geek/comments/140120.html</wfw:comment><comments>http://www.shnenglu.com/Geek/archive/2011/02/15/140120.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/Geek/comments/commentRss/140120.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/Geek/services/trackbacks/140120.html</trackback:ping><description><![CDATA[<p>   *在C++中结构体和类有很多相似性,l构体是一U用关键字struct声明的自定义数据cd。与cȝ|也可以包含构造函敎ͼ常数Q字D,ҎQ属性,索引器,q算W和嵌套cd{,不过Q结构是值类型?/p> <p>    l构体还是有很多的区别?/p> <p>    1.cL员默认访问权限ؓU有QprivateQ,l构体成员默认访问权限ؓ公共QpublicQ;</p> <p>    2.从classl承默认是privatel承Q而从structl承默认是publicl承?/p> <p>注意QC中的struct跟C++中struct可是不一L</p> <p>*q?构造数据类?也叫联合?<br>用途:使几个不同类型的变量共占一D内?怺覆盖) <br>l构体是一U构造数据类?<br>用途:把不同类型的数据l合成一个整?------自定义数据类?<br>--------------------------------------------------------------- <br>l构体变量所占内存长度是各成员占的内存长度的d?<br>共同体变量所占内存长度是各最长的成员占的内存长度?<br>共同体每ơ只能存攑֓个的一U!Q?<br>共同体变量中起作用的成员是尊后一ơ存攄成员Q?<br>在存入新的成员后原有的成员失M作用Q?<br>--------------------------------------------------------------- <br>struct ?union主要有以下区? <br>1. struct和union都是由多个不同的数据cd成员l成, 但在M同一时刻, union中只存放了一个被选中的成? 而struct的所有成员都存在。在struct中,各成员都占有自己的内存空_它们是同时存在的。一个struct变量的总长度等于所有成员长度之和。在Union中,所有成员不能同时占用它的内存空_它们不能同时存在。Union变量的长度等于最长的成员的长度?<br>2. 对于union的不同成员赋? 会对其它成员重? 原来成员的值就不存在了, 而对于struct的不同成员赋值是互不影响的?</p><img src ="http://www.shnenglu.com/Geek/aggbug/140120.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/Geek/" target="_blank">Geek.tan</a> 2011-02-15 23:04 <a href="http://www.shnenglu.com/Geek/archive/2011/02/15/140120.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>引用和指针的区别http://www.shnenglu.com/Geek/archive/2011/02/15/140116.htmlGeek.tanGeek.tanTue, 15 Feb 2011 13:55:00 GMThttp://www.shnenglu.com/Geek/archive/2011/02/15/140116.htmlhttp://www.shnenglu.com/Geek/comments/140116.htmlhttp://www.shnenglu.com/Geek/archive/2011/02/15/140116.html#Feedback0http://www.shnenglu.com/Geek/comments/commentRss/140116.htmlhttp://www.shnenglu.com/Geek/services/trackbacks/140116.html 嘎嘎Q第一ơ面试时Q笔试的一道题目,我没有答完整?/font>

引用Q就是变量或对象的别名,它不是|不占存储I间Q其只有声明没有定义Q其主要用于函数的Ş参和函数的返回倹{?/p>

注意Q引用作为函数的q回|大多数情况下可以被指针代替,但是遇到构造函数和操作W重载函数的“Ş式自然”的问题是,是不能被替代的?/p>

引用和指针区别:

  1. 引用必须初始化,但是不分配存储空间。指针不声明时初始化Q在初始化的时候需要分配存储空间?
  2. 引用初始化以后不能被改变Q指针可以改变所指的对象?
  3. 不存在指向空值的引用Q但是存在指向空值的指针?/li>


Geek.tan 2011-02-15 21:55 发表评论
]]>
析C++中内存分配方?/title><link>http://www.shnenglu.com/Geek/archive/2011/02/11/139877.html</link><dc:creator>Geek.tan</dc:creator><author>Geek.tan</author><pubDate>Thu, 10 Feb 2011 16:22:00 GMT</pubDate><guid>http://www.shnenglu.com/Geek/archive/2011/02/11/139877.html</guid><wfw:comment>http://www.shnenglu.com/Geek/comments/139877.html</wfw:comment><comments>http://www.shnenglu.com/Geek/archive/2011/02/11/139877.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/Geek/comments/commentRss/139877.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/Geek/services/trackbacks/139877.html</trackback:ping><description><![CDATA[<p>  <font size="2" face="微Y雅黑">在C++中,内存分ؓ<font color="#4bacc6">5大存储区</font>Q?font color="#4f81bd">堆区、栈区、全局区、文字常量区、程序代码区</font>?/font></p> <p><font size="2" face="微Y雅黑"></font> </p> <table border="0" cellspacing="0" cellpadding="2" width="497"> <tbody> <tr> <td valign="top" width="120"><font size="2" face="微Y雅黑">内存区域</font></td> <td valign="top" width="375"><font size="2" face="微Y雅黑">说明</font></td></tr> <tr> <td valign="top" width="120"><font size="2" face="微Y雅黑">栈区QstackQ?/font></td> <td valign="top" width="375"><font size="2" face="微Y雅黑">   q译器自动分配释放Q存放ؓq行函数而分配的局部变量、函数参数、返回数据、返回地址{。其操作方式cM于数据结构中的栈?/font></td></tr> <tr> <td valign="top" width="120"><font size="2" face="微Y雅黑">堆区QheapQ?/font></td> <td valign="top" width="375"><font size="2" face="微Y雅黑">  一般有E序员分配释放,若程序员不释放,E序l束时可能有pȝ回收。分配方式类g链表?/font></td></tr> <tr> <td valign="top" width="120"><font size="2" face="微Y雅黑">全局区(staticQ?/font></td> <td valign="top" width="375"><font size="2" face="微Y雅黑">存放全局变量、静态数据、常量。程序结束后有系l释放?/font></td></tr> <tr> <td valign="top" width="120"><font size="2" face="微Y雅黑">文字帔R?/font></td> <td valign="top" width="375"><font size="2" face="微Y雅黑">  帔R字符串就是放在这里;E序l束后有pȝ释放?/font></td></tr> <tr> <td valign="top" width="120"><font size="2" face="微Y雅黑">E序代码?/font></td> <td valign="top" width="375"><font size="2" face="微Y雅黑">  存放函数体(cL员函数和全局函数Q的二进制代码?/font></td></tr></tbody></table> <p><font size="2" face="微Y雅黑">实例分析Q?/font></p><pre class="code"><p><span style="color: blue">int </span><span style="color: #010001">a</span>=0; <span style="color: green">//全局区初始化? </span><span style="color: blue">char </span>*<span style="color: #010001">p1</span>;    <span style="color: green">//全局区未初始化区 </span><span style="color: blue">static char </span><span style="color: #010001">b</span>;      <span style="color: green">//全局区未初始化静态变? </span><span style="color: blue">int </span><span style="color: #010001">main</span>() { <span style="color: blue">int </span><span style="color: #010001">c</span>; <span style="color: green">//栈区临时变量 </span><span style="color: blue">char </span><span style="color: #010001">s</span>[]=<span style="color: #a31515">"abc"</span>; <span style="color: green">//栈区临时数组变量 </span><span style="color: blue">char </span>*<span style="color: #010001">p2</span>; <span style="color: green">//栈区临时指针变量 </span><span style="color: blue">char </span>*<span style="color: #010001">p3</span>=<span style="color: #a31515">"123"</span>;    <span style="color: green">//帔R区常量,栈区指针变量 </span><span style="color: blue">static int </span><span style="color: #010001">d</span>=0; <span style="color: green">//全局初始化区静态变? </span><span style="color: #010001">p1</span>=<span style="color: blue">new char</span>[10]; <span style="color: green">//堆区分配10个字W空? </span><span style="color: #010001">p2</span>=<span style="color: blue">new char</span>[20]; <span style="color: green">//堆区分配20个字W空? </span><span style="color: #010001">strcpy</span>(<span style="color: #010001">p1</span>,<span style="color: #a31515">"123"</span>); <span style="color: green">//"123"攑֜帔R区,~译器有可能它与p3所指向的区域相?/span></p><p><span style="color: green"></span>}</p></pre> <p><font size="2" face="微Y雅黑"><font color="#4f81bd">内存分配方式</font>Q?/font></p> <li><font size="2" face="微Y雅黑">从静态存储区分配<br><br>内存在程序编译时已l分配好Q这块内存在E序的整个运行期间都存在。速度快、不Ҏ出错Q因为系l会善后。例如全局变量Qstatic帔R?/font> <li><font size="2" face="微Y雅黑">从栈上分?br><br>在执行函数时Q函数内部局部变量的存储单元都在栈上创徏Q函数执行结束时q些存储单元自动被释放。栈内存分配q算内置于处理器指o集中Q效率很高,但分配的内存定w有限?/font> <li><font size="2" face="微Y雅黑">从堆上分?br><br>也叫动态分配。程序在q行时用malloc或new甌L大小的内存,E序员自p责在何时用free或delete释放内存。动态内存的生存期有E序员决定,使用灉|。如果在堆上分配了空_有责Q回收它,否则q行的程序会出现内存泄露Q另外频J的分配和释放不同大的堆空间将会生对内碎块?/font> <p><font size="2" face="微Y雅黑"></font> </p> <p><font size="2" face="微Y雅黑"><font color="#4f81bd">堆和栈究区别</font>Q?/font></p> <p><font size="2" face="微Y雅黑">主要的区别由以下几点Q?br>   1.理方式Q对于栈来讲Q是q译器自动理Q无需我们手工控制Q对于堆来说Q释攑ַ作由E序员控ӞҎ产生memory leak?br></font></p> <p><font size="2" face="微Y雅黑">   2.I间大小Q一般来讲在32位系l下Q堆内存可以辑ֈ4G的空_从这个角度来看堆内存几乎是没有什么限制的。但是对于栈来讲Q一般都是有一定的I间大小 的,例如Q在VC6下面Q默认的栈空间大是1MQ好像是Q记不清楚了Q。当Ӟ我们可以修改Q?br>打开工程Q依ơ操作菜单如下:Project->Setting->LinkQ在Category 中选中OutputQ然后在Reserve中设定堆栈的最大值和commit?br>    注意Qreserve最gؓ4ByteQcommit是保留在虚拟内存的页文g里面Q它讄的较大会使栈开辟较大的|可能增加内存的开销和启动时间?br>   </font></p> <p><font size="2" face="微Y雅黑">   3.片问题Q对于堆来讲Q频J的new/delete势必会造成内存I间的不q箋Q从而造成大量的碎片,使程序效率降低。对于栈来讲Q则不会存在q个问题Q?因ؓ栈是先进后出的队列,他们是如此的一一对应Q以至于永远都不可能有一个内存块从栈中间弹出Q在他弹Z前,在他上面的后q的栈内容已l被弹出Q详l的 可以参考数据结构,q里我们׃再一一讨论了?br> </font></p> <p><font size="2" face="微Y雅黑">   4.生长方向Q对于堆来讲Q生长方向是向上的,也就是向着内存地址增加的方向;对于栈来Ԍ它的生长方向是向下的Q是向着内存地址减小的方向增ѝ?br>分配方式Q堆都是动态分配的Q没有静态分配的堆。栈?U分配方式:静态分配和动态分配。静态分配是~译器完成的Q比如局部变量的分配。动态分配由 alloca函数q行分配Q但是栈的动态分配和堆是不同的,他的动态分配是q译器q行释放Q无需我们手工实现?br></font></p> <p><font size="2" face="微Y雅黑">    5.分配效率Q栈是机器系l提供的数据l构Q计机会在底层Ҏ提供支持Q分配专门的寄存器存放栈的地址Q压栈出栈都有专门的指o执行Q这决定了栈的效率?较高。堆则是C/C++函数库提供的Q它的机制是很复杂的Q例如ؓ了分配一块内存,库函C按照一定的法Q具体的法可以参考数据结?操作pȝQ在堆内存中搜烦可用的够大的I间Q如果没有够大的I间Q可能是׃内存片太多Q,有可能调用pȝ功能d加程序数据段的内存空_q样有Z?到够大的内存Q然后进行返回。显Ӟ堆的效率比栈要低得多?/font></p> <p><font color="#4f81bd" size="2" face="微Y雅黑">常见的内存错误及其对{:</font></p> <p>发生内存错误是g非常ȝ的事情。编译器不能自动发现q些错误Q通常是在E序q行时才能捕捉到。而这些错误大多没有明昄症状Q时隐时玎ͼ增加了改错的隑ֺ。常见的内存错误及其对策如下Q? <p> <font color="#4f81bd"> </font><font color="#c0504d">* 内存分配未成功,却用了它?/font> <p>  ~程新手常犯q种错误Q因Z们没有意识到内存分配会不成功。常用解军_法是Q在使用内存之前查指针是否ؓNULL。如果指针p是函数的参数Q那么在函数的入口处用assert(p!=NULL)q行查。如果是用malloc或new来申请内存,应该用if(p==NULL) 或if(p!=NULL)q行防错处理? <p>     <font color="#9bbb59"></font><font color="#c0504d">* 内存分配虽然成功Q但是尚未初始化引用它?/font> <p>  犯这U错误主要有两个起因Q一是没有初始化的观念;二是误以为内存的~省初值全为零Q导致引用初值错误(例如数组Q?内存的缺省初值究竟是什么ƈ没有l一的标准,管有些时候ؓ零|我们宁可信其无不可信其有。所以无论用何种方式创徏数组Q都别忘了赋初|即便是赋零g不可省略Q不要嫌ȝ? <p>  <font color="#c0504d">* 内存分配成功q且已经初始化,但操作越q了内存的边界?/font> <p>  例如在用数l时l常发生下标“多1”或者“少1”的操作。特别是在for循环语句中,循环ơ数很容易搞错,D数组操作界? <p>  <font color="#c0504d">* 忘记了释攑ֆ存,造成内存泄露?/font> <p>  含有q种错误的函数每被调用一ơ就丢失一块内存。刚开始时pȝ的内存充I你看不到错误。终有一ơ程序突然死掉,pȝ出现提示Q内存耗尽? <p>  动态内存的甌与释攑ֿ配对,E序中malloc与free的用次C定要相同Q否则肯定有错误Qnew/delete同理Q? <p>  <font color="#c0504d">* 释放了内存却l箋使用它?/font> <p>  有三U情况: <p>  Q?Q程序中的对象调用关p过于复杂,实在难以搞清楚某个对象究竟是否已l释放了内存Q此时应该重新设计数据结构,从根本上解决对象理的؜乱局面? <p>  Q?Q函数的return语句写错了,注意不要q回指向“栈内存”的“指针”或者“引用”,因ؓ该内存在函数体结束时被自动销毁? <p>  Q?Q用free或delete释放了内存后Q没有将指针讄为NULL。导致生“野指针”? <p>    【规?】用malloc或new甌内存之后Q应该立x查指针值是否ؓNULL。防止用指针gؓNULL的内存? <p>      【规?】不要忘Cؓ数组和动态内存赋初倹{防止将未被初始化的内存作ؓ叛_g用? <p>   【规?】避免数l或指针的下标越界,特别要当心发生“多1”或者“少1”操作? <p>    【规?】动态内存的甌与释攑ֿ配对,防止内存泄漏? <p>  【规?】用free或delete释放了内存之后,立即指针设|ؓNULLQ防止生“野指针”? </li><img src ="http://www.shnenglu.com/Geek/aggbug/139877.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/Geek/" target="_blank">Geek.tan</a> 2011-02-11 00:22 <a href="http://www.shnenglu.com/Geek/archive/2011/02/11/139877.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>函数指针http://www.shnenglu.com/Geek/archive/2011/02/09/139834.htmlGeek.tanGeek.tanWed, 09 Feb 2011 05:54:00 GMThttp://www.shnenglu.com/Geek/archive/2011/02/09/139834.htmlhttp://www.shnenglu.com/Geek/comments/139834.htmlhttp://www.shnenglu.com/Geek/archive/2011/02/09/139834.html#Feedback0http://www.shnenglu.com/Geek/comments/commentRss/139834.htmlhttp://www.shnenglu.com/Geek/services/trackbacks/139834.html

    来自Q百度百U?

    函数指针是指向函数的指针变量?因而“函数指针”本w首先应?a >指针变量Q只不过该指针变量指向函数。这正如用指针变量可指向整型变量、字W型?a >数组一Pq里是指向函数。如前所qͼC在编译时Q每一个函数都有一个入口地址Q该入口地址是函数指针所指向的地址。有了指向函数的指针变量后,可用该指针变量调用函敎ͼ如同用指针变量可引用其他类型变量一P在这些概念上是一致的。函数指针有两个用途:调用函数和做函数?a >参数?

 

  1. 函数指针声明ҎQ?/font>

【数据类型】?】【指针变量名】(形参列表Q;

  ?Q“函数类型”说明函数的q回cdQ由于?)”的优先U高于??所以指针变量名外的括号必不可少Q后面的“Ş参列表”表C指针变量指向的函数所带的参数列表。例如:

    int func(int x); /* 声明一个函?*/

  int (*f) (int x); /* 声明一个函数指?*/

  f=func; /* func函数的首地址赋给指针f */

  赋值时函数func不带括号Q也不带参数Q由于func代表函数的首地址Q因此经q赋g后,指针f指向函数func(x)的代码的首地址?

  ?Q函数括号中的Ş参可有可无,视情况而定?

  下面的程序说明了函数指针调用函数的方法:

#include <iostream>
using namespace std;
int max(int x,int y){return (x>y?x:y);}
int main()
{
    int (*ptr)(int,int );
    int a,b,c;
    ptr=max;
    cin>>a>>b;
    c=(*ptr)(a,b);
    cout<<c<<endl;
    return 0;
}

    ptr是指向函数的指针变量Q所以可把函数max()赋给ptr作ؓptr的|xmax()的入口地址赋给ptr,以后可以用ptr来调用该函数Q实际上ptr和max都指向同一个入口地址Q不同就是ptr是一个指针变量,不像函数名称那样是死的,它可以指向Q何函敎ͼq你想怎么做了。在E序中把哪个函数的地址赋给它,它就指向哪个函数。而后用指针变量调用它Q因此可以先后指向不同的函数?b>不过注意Q指向函数的指针变量没有++?-q算Q用时要心?

2.指针函数和函数指针的区别Q?/font>

1,q两个概念都是简Uͼ指针函数是指带指针的函数Q即本质是一个函数。我们知道函数都又有q回cdQ如果不q回?/a>Q则为无值型Q,只不q指针函数返回类型是某一cd的指针?

  其定义格式如下所C:

  【返回类?a >标识W?/a>】?*】【返回名U】(形式参数表)

  { 函数?/a> }

  q回cd可以是Q何基本类型和复合cd。返回指针的函数的用途十分广泛。事实上Q每一个函敎ͼ即它不带有q回某种cd的指针,它本w都有一个入口地址Q该地址相当于一个指针?/b>比如函数q回一个整型|实际上也相当于返回一个指针变量的|不过q时的变量是函数本n而已Q而整个函数相当于一个“变量”?

3.关于函数指针数组的定?/font>

关于函数指针数组的定义方法,有两U:一U是标准的方法;一U是蒙骗法?

  W一U,标准ҎQ?

  函数指针数组是一个其元素是函数指针的数组。那么也是_?a >数据l构是一个数l,且其元素是一个指向函数入口地址的指针?

  Ҏ分析Q首先说明是一个数l:数组名[]

  其次Q要说明其元素的数据cd指针:*数组名[].

  再次Q要明确q每一个数l元素是指向函数入口地址的指针:函数q回值类?(*数组名[])().h意,q里Z么要把?数组名[]”用括号扩v来呢Q因为圆括号和数l说明符的优先是等同的Q如果不用圆括号把指针数l说?a >表达?/a>扩v来,Ҏ圆括号和ҎLl合方向Q那?*数组名[]() 说明的是什么呢Q是元素q回值类型ؓ指针的函数数l。有q样的函数数吗Q不知道。所以必LhQ以保证数组的每一个元素是指针?

  W二U,蒙骗法:

  管函数不是变量Q但它在内存中仍有其物理地址Q该地址能够赋给指针变量。获取函数地址的方法是Q用不带有括号和参数的函数名得到?

  函数名相当于一个指向其函数入口指针帔R?那么既然函数名是一个指针常量,那么可以对其进行一些相应的处理Q如强制cd转换?

  那么我们可以把q个地址攑֜一个整形指针数l中Q然后作为函数指针调用即可?

  完整例子Q?

#include <iostream>
int add1(int a1,int b1);
int add2(int a2,int b2);

int main()
{
    int numa1=1,numb1=2;
    int numa2=2,numb2=3;
    int (*op[2])(int a,int b);
    op[0]=add1;
    op[1]=add2;
    printf("%d ,%d\n",op[0](numa1,numb1),op[1](numa2,numb2));

    system("PAUSE");
    return 0;
}

int add1(int a1,int b1)
{
    return a1+b1;
}
int add2(int a2,int b2)
{
    return a2+b2;
}


Geek.tan 2011-02-09 13:54 发表评论
]]>一道题?/title><link>http://www.shnenglu.com/Geek/archive/2011/02/07/139771.html</link><dc:creator>Geek.tan</dc:creator><author>Geek.tan</author><pubDate>Sun, 06 Feb 2011 16:04:00 GMT</pubDate><guid>http://www.shnenglu.com/Geek/archive/2011/02/07/139771.html</guid><wfw:comment>http://www.shnenglu.com/Geek/comments/139771.html</wfw:comment><comments>http://www.shnenglu.com/Geek/archive/2011/02/07/139771.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/Geek/comments/commentRss/139771.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/Geek/services/trackbacks/139771.html</trackback:ping><description><![CDATA[<p>题目Q写Z下代码输出?/p><pre class="code"><span style="color: blue">#include</span><span style="color: #a31515"><iostream> </span><span style="color: blue">using namespace </span><span style="color: #010001">std</span>; <span style="color: blue">int </span><span style="color: #010001">main</span>() { <span style="color: blue">char </span><span style="color: #010001">str1</span>[]=<span style="color: #a31515">"abc"</span>; <span style="color: blue">char </span><span style="color: #010001">str2</span>[]=<span style="color: #a31515">"abc"</span>; <span style="color: blue">const char </span><span style="color: #010001">str3</span>[]=<span style="color: #a31515">"abc"</span>; <span style="color: blue">const char </span><span style="color: #010001">str4</span>[]=<span style="color: #a31515">"abc"</span>; <span style="color: blue">const char </span>*<span style="color: #010001">str5</span>=<span style="color: #a31515">"abc"</span>; <span style="color: blue">const char </span>*<span style="color: #010001">str6</span>=<span style="color: #a31515">"abc"</span>; <span style="color: blue">char </span>*<span style="color: #010001">str7</span>=<span style="color: #a31515">"abc"</span>; <span style="color: blue">char </span>*<span style="color: #010001">str8</span>=<span style="color: #a31515">"abc"</span>; <span style="color: #010001">cout</span><<(<span style="color: #010001">str1</span>==<span style="color: #010001">str2</span>)<<<span style="color: #010001">endl</span>; <span style="color: #010001">cout</span><<(<span style="color: #010001">str3</span>==<span style="color: #010001">str4</span>)<<<span style="color: #010001">endl</span>; <span style="color: #010001">cout</span><<(<span style="color: #010001">str5</span>==<span style="color: #010001">str6</span>)<<<span style="color: #010001">endl</span>; <span style="color: #010001">cout</span><<(<span style="color: #010001">str7</span>==<span style="color: #010001">str8</span>)<<<span style="color: #010001">endl</span>; <span style="color: #010001">getchar</span>(); } </pre> <p>l果是:</p> <p><a href="http://www.shnenglu.com/images/cppblog_com/Geek/Windows-Live-Writer/f22c2cee6a80_14F7B/image_2.png"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.shnenglu.com/images/cppblog_com/Geek/Windows-Live-Writer/f22c2cee6a80_14F7B/image_thumb.png" width="208" height="103"></a></p> <p>为神马呢Q?/p> <p>写个代码来看看内存地址Q?/p><pre class="code"><span style="color: blue">#include</span><span style="color: #a31515"><iostream> </span><span style="color: blue">using namespace </span><span style="color: #010001">std</span>; <span style="color: blue">int </span><span style="color: #010001">main</span>() { <span style="color: blue">char </span><span style="color: #010001">str1</span>[]=<span style="color: #a31515">"abc"</span>; <span style="color: blue">char </span><span style="color: #010001">str2</span>[]=<span style="color: #a31515">"abc"</span>; <span style="color: blue">const char </span><span style="color: #010001">str3</span>[]=<span style="color: #a31515">"abc"</span>; <span style="color: blue">const char </span><span style="color: #010001">str4</span>[]=<span style="color: #a31515">"abc"</span>; <span style="color: blue">const char </span>*<span style="color: #010001">str5</span>=<span style="color: #a31515">"abc"</span>; <span style="color: blue">const char </span>*<span style="color: #010001">str6</span>=<span style="color: #a31515">"abc"</span>; <span style="color: blue">char </span>*<span style="color: #010001">str7</span>=<span style="color: #a31515">"abc"</span>; <span style="color: blue">char </span>*<span style="color: #010001">str8</span>=<span style="color: #a31515">"abc"</span>; <span style="color: #010001">printf</span>(<span style="color: #a31515">"abc: %d\n"</span>,&(<span style="color: #a31515">"abc"</span>)); <span style="color: #010001">printf</span>(<span style="color: #a31515">"str1: %d\n"</span>,<span style="color: #010001">str1</span>); <span style="color: #010001">printf</span>(<span style="color: #a31515">"str2: %d\n"</span>,<span style="color: #010001">str2</span>); <span style="color: #010001">printf</span>(<span style="color: #a31515">"str3: %d\n"</span>,<span style="color: #010001">str3</span>); <span style="color: #010001">printf</span>(<span style="color: #a31515">"str4: %d\n"</span>,<span style="color: #010001">str4</span>); <span style="color: #010001">printf</span>(<span style="color: #a31515">"str5: %d\n"</span>,<span style="color: #010001">str5</span>); <span style="color: #010001">printf</span>(<span style="color: #a31515">"str6: %d\n"</span>,<span style="color: #010001">str6</span>); <span style="color: #010001">printf</span>(<span style="color: #a31515">"str7: %d\n"</span>,<span style="color: #010001">str7</span>); <span style="color: #010001">printf</span>(<span style="color: #a31515">"str8: %d\n"</span>,<span style="color: #010001">str8</span>); <span style="color: #010001">getchar</span>(); <span style="color: blue">return </span>0; } </pre> <p>l果是:</p> <p><a href="http://www.shnenglu.com/images/cppblog_com/Geek/Windows-Live-Writer/f22c2cee6a80_14F7B/image_4.png"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.shnenglu.com/images/cppblog_com/Geek/Windows-Live-Writer/f22c2cee6a80_14F7B/image_thumb_1.png" width="143" height="158"></a></p> <p>分析Q?/p> <p>str1Qstr2Qstr3Qstr4是数l变量,它们有各自的I间Q而数l名是数组的首地址?/p> <p>str5Qstr6Qstr7Qstr8是指针,它们指向了相同的帔R区域?/p><img src ="http://www.shnenglu.com/Geek/aggbug/139771.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/Geek/" target="_blank">Geek.tan</a> 2011-02-07 00:04 <a href="http://www.shnenglu.com/Geek/archive/2011/02/07/139771.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://www.shnenglu.com/" title="精品视频久久久久">精品视频久久久久</a> <div class="friend-links"> </div> </div> </footer> <a href="http://www.adidas2009.cn" target="_blank">ƷۺϾþ</a>| <a href="http://www.114best.com.cn" target="_blank">ľƷþþþþò</a>| <a href="http://www.0475job.cn" target="_blank">þþƷƷ޾Ʒ</a>| <a href="http://www.abcvi.cn" target="_blank">ĻƷѾþþ</a>| <a href="http://www.expo2006sy.com.cn" target="_blank"> þۺϾɫۺϾ99</a>| <a href="http://www.ghzu.cn" target="_blank">ŷ޾Ʒ˾þԻӰƬ</a>| <a href="http://www.joy7.com.cn" target="_blank">vĻþ</a>| <a href="http://www.goodleg.cn" target="_blank">þþƷ99͵</a>| <a href="http://www.hbdmw.cn" target="_blank">ŷ˾þô߽ۺ69 </a>| <a href="http://www.asnonfj.cn" target="_blank">Ʒһþ㽶߿</a>| <a href="http://www.honglinzhiyi.cn" target="_blank">þþƷӰԺ</a>| <a href="http://www.dingtalk.org.cn" target="_blank">þ99ֻоƷ</a>| <a href="http://www.gg4493.cn" target="_blank">þֻƷ99</a>| <a href="http://www.djdnx.cn" target="_blank">޾Ʒþþþþ</a>| <a href="http://www.smsunion.cn" target="_blank">þۺ</a>| <a href="http://www.23d6.cn" target="_blank">޾Ʒþþþ</a>| <a href="http://www.loveindg.cn" target="_blank">þþƷav٤</a>| <a href="http://www.vcyw.cn" target="_blank">ƷþþþþӰԺ</a>| <a href="http://www.a0037.cn" target="_blank">þۺ97ɫֱ</a>| <a href="http://www.111party.cn" target="_blank">91Ʒɫ۾þ</a>| <a href="http://www.kahb.cn" target="_blank">99þ뾫Ʒϵ</a>| <a href="http://www.b2bnn.cn" target="_blank">þþ뾫Ʒպý </a>| <a href="http://www.ahbbmj.cn" target="_blank">պƷþþþþ</a>| <a href="http://www.cdge.cn" target="_blank">þþ뾫Ʒպ˳</a>| <a href="http://www.pb-wines.cn" target="_blank">þùһƬѹۿ</a>| <a href="http://www.hskx.org.cn" target="_blank">þݹƷһ</a>| <a href="http://www.y5xx.cn" target="_blank">97þþþƷۺ88þ</a>| <a href="http://www.wanghaochuju.cn" target="_blank">ĻƷѾþ</a>| <a href="http://www.cxwlvip.cn" target="_blank">AvƷþ</a>| <a href="http://www.gold160.cn" target="_blank">þòþüӰԺwwwձ</a>| <a href="http://www.lady8.cn" target="_blank">97þþƷƷ</a>| <a href="http://www.t2tt.cn" target="_blank">þ޾Ʒ˳ۺ</a>| <a href="http://www.dpbz.net.cn" target="_blank">޹Ʒþþò</a>| <a href="http://www.apple-tree.com.cn" target="_blank">ĻƷþþþ</a>| <a href="http://www.pc36.cn" target="_blank">þþþþþþþþ</a>| <a href="http://www.zfse4m.cn" target="_blank">ۺϾþһ</a>| <a href="http://www.suec.net.cn" target="_blank">޹뾫ƷŮ˾þþò</a>| <a href="http://www.bolidianqi.cn" target="_blank">ҹƷþ</a>| <a href="http://www.tom530.cn" target="_blank">þ99Ʒþþþþò</a>| <a href="http://www.duansisi.cn" target="_blank">þ99Ʒþþþþ</a>| <a href="http://www.vufh.cn" target="_blank">ާѡþþþƷ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>