??xml version="1.0" encoding="utf-8" standalone="yes"?>久久亚洲精品无码播放,久久精品国产亚洲AV香蕉,狠狠88综合久久久久综合网http://www.shnenglu.com/Geek/换了(jin)个地址Qhttp://www.cnblogs.com/vizhen/ zh-cnWed, 07 May 2025 13:35:43 GMTWed, 07 May 2025 13:35:43 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、不心(j)误删面板的恢复方?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、不心(j)更改默认主题风格的恢复方?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Ӟ中文可能׃(x)是显CZؓ(f)q?/p>

解决Ҏ(gu)Q?nbsp;  

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

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

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

 

?/strong>

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

 

?/strong>

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



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,Ҏ(gu)Q属性,索引器,q算W和嵌套cd{,不过Q结构是值类型?/p> <p>    l构体还是有很多的区别?/p> <p>    1.cL员默认访问权限ؓ(f)U有QprivateQ,l构体成员默认访问权限ؓ(f)公共QpublicQ;</p> <p>    2.从classl承默认是privatel承Q而从structl承默认是publicl承?/p> <p>注意QC中的struct跟C++中struct可是不一L(fng)</p> <p>*q?构造数据类?也叫联合?<br>用途:(x)使几个不同类型的变量共占一D内?怺覆盖) <br>l构体是一U构造数据类?<br>用途:(x)把不同类型的数据l合成一个整?------自定义数据类?<br>--------------------------------------------------------------- <br>l构体变量所占内存长度是各成员占的内存长度的d?<br>共同体变量所占内存长度是各最长的成员占的内存长度?<br>共同体每ơ只能存攑֓个的一U!Q?<br>共同体变量中起作用的成员是尊后一ơ存攄成员Q?<br>在存入新的成员后原有的成员失M(jin)作用Q?<br>--------------------------------------------------------------- <br>struct ?union主要有以下区? <br>1. struct和union都是由多个不同的数据cd成员l成, 但在M同一时刻, union中只存放?jin)一个被选中的成? 而struct的所有成员都存在。在struct中,各成员都占有自己的内存空_(d)它们是同时存在的。一个struct变量的总长度等于所有成员长度之和。在Union中,所有成员不能同时占用它的内存空_(d)它们不能同时存在。Union变量的长度等于最长的成员的长度?<br>2. 对于union的不同成员赋? 会(x)对其它成员重? 原来成员的值就不存在了(jin), 而对于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>

引用和指针区别:(x)

  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++中,内存分ؓ(f)<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存放ؓ(f)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序的整个运行期间都存在。速度快、不Ҏ(gu)出错Q因为系l会(x)善后。例如全局变量Qstatic帔R?/font> <li><font size="2" face="微Y雅黑">从栈上分?br><br>在执行函数时Q函数内部局部变量的存储单元都在栈上创徏Q函数执行结束时q些存储单元自动被释放。栈内存分配q算内置于处理器指o(h)集中Q效率很高,但分配的内存定w有限?/font> <li><font size="2" face="微Y雅黑">从堆上分?br><br>也叫动态分配。程序在q行时用malloc或new甌L大小的内存,E序员自p责在何时用free或delete释放内存。动态内存的生存期有E序员决定,使用灉|。如果在堆上分配?jin)空_(d)有责Q回收它,否则q行的程序会(x)出现内存泄露Q另外频J的分配和释放不同大的堆空间将?x)生对内碎块?/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序员控ӞҎ(gu)产生memory leak?br></font></p> <p><font size="2" face="微Y雅黑">   2.I间大小Q一般来讲在32位系l下Q堆内存可以辑ֈ4G的空_(d)从这个角度来看堆内存几乎是没有什么限制的。但是对于栈来讲Q一般都是有一定的I间大小 的,例如Q在VC6下面Q默认的栈空间大是1MQ好像是Q记不清楚了(jin)Q。当?dng)我们可以修改Q?br>打开工程Q依ơ操作菜单如下:(x)Project->Setting->LinkQ在Category 中选中OutputQ然后在Reserve中设定堆栈的最大值和commit?br>    注意Qreserve最gؓ(f)4ByteQcommit是保留在虚拟内存的页文g里面Q它讄的较大会(x)使栈开辟较大的|可能增加内存的开销和启动时间?br>   </font></p> <p><font size="2" face="微Y雅黑">   3.片问题Q对于堆来讲Q频J的new/delete势必?x)造成内存I间的不q箋Q从而造成大量的碎片,使程序效率降低。对于栈来讲Q则不会(x)存在q个问题Q?因ؓ(f)栈是先进后出的队列,他们是如此的一一对应Q以至于永远都不可能有一个内存块从栈中间弹出Q在他弹Z前,在他上面的后q的栈内容已l被弹出Q详l的 可以参考数据结构,q里我们׃再一一讨论?jin)?br> </font></p> <p><font size="2" face="微Y雅黑">   4.生长方向Q对于堆来讲Q生长方向是向上的,也就是向着内存地址增加的方向;对于栈来Ԍ它的生长方向是向下的Q是向着内存地址减小的方向增ѝ?br>分配方式Q堆都是动态分配的Q没有静态分配的堆。栈?U分配方式:(x)静态分配和动态分配。静态分配是~译器完成的Q比如局部变量的分配。动态分配由 alloca函数q行分配Q但是栈的动态分配和堆是不同的,他的动态分配是q译器q行释放Q无需我们手工实现?br></font></p> <p><font size="2" face="微Y雅黑">    5.分配效率Q栈是机器系l提供的数据l构Q计机?x)在底层?gu)提供支持Q分配专门的寄存器存放栈的地址Q压栈出栈都有专门的指o(h)执行Q这决定了(jin)栈的效率?较高。堆则是C/C++函数库提供的Q它的机制是很复杂的Q例如ؓ(f)?jin)分配一块内存,库函C(x)按照一定的法Q具体的法可以参考数据结?操作pȝQ在堆内存中搜烦(ch)可用的够大的I间Q如果没有够大的I间Q可能是׃内存片太多Q,有可能调用pȝ功能d加程序数据段的内存空_(d)q样有Z(x)?到够大的内存Q然后进行返回。显?dng)堆的效率比栈要低得多?/font></p> <p><font color="#4f81bd" size="2" face="微Y雅黑">常见的内存错误及(qing)其对{:(x)</font></p> <p>发生内存错误是g非常ȝ(ch)的事情。编译器不能自动发现q些错误Q通常是在E序q行时才能捕捉到。而这些错误大多没有明昄症状Q时隐时玎ͼ增加?jin)改错的隑ֺ。常见的内存错误?qing)其对策如下Q? <p> <font color="#4f81bd"> </font><font color="#c0504d">* 内存分配未成功,却用了(jin)它?/font> <p>  ~程新手常犯q种错误Q因Z们没有意识到内存分配?x)不成功。常用解军_法是Q在使用内存之前(g)查指针是否ؓ(f)NULL。如果指针p是函数的参数Q那么在函数的入口处用assert(p!=NULL)q行(g)查。如果是用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一的标准,管有些时候ؓ(f)零|我们宁可信其无不可信其有。所以无论用何种方式创徏数组Q都别忘?jin)赋初|即便是赋零g不可省略Q不要嫌ȝ(ch)? <p>  <font color="#c0504d">* 内存分配成功q且已经初始化,但操作越q了(jin)内存的边界?/font> <p>  例如在用数l时l常发生下标“多1”或者“少1”的操作。特别是在for循环语句中,循环ơ数很容易搞错,D数组操作界? <p>  <font color="#c0504d">* 忘记?jin)释攑ֆ存,造成内存泄露?/font> <p>  含有q种错误的函数每被调用一ơ就丢失一块内存。刚开始时pȝ的内存充I你看不到错误。终有一ơ程序突然死掉,pȝ出现提示Q内存耗尽? <p>  动态内存的甌与释攑ֿ配对,E序中malloc与free的用次C定要相同Q否则肯定有错误Qnew/delete同理Q? <p>  <font color="#c0504d">* 释放?jin)内存却l箋使用它?/font> <p>  有三U情况:(x) <p>  Q?Q程序中的对象调用关p过于复杂,实在难以搞清楚某个对象究竟是否已l释放了(jin)内存Q此时应该重新设计数据结构,从根本上解决对象理的؜乱局面? <p>  Q?Q函数的return语句写错?jin),注意不要q回指向“栈内存”的“指针”或者“引用”,因ؓ(f)该内存在函数体结束时被自动销毁? <p>  Q?Q用free或delete释放?jin)内存后Q没有将指针讄为NULL。导致生“野指针”? <p>    【规?】用malloc或new甌内存之后Q应该立x查指针值是否ؓ(f)NULL。防止用指针gؓ(f)NULL的内存? <p>      【规?】不要忘Cؓ(f)数组和动态内存赋初倹{防止将未被初始化的内存作ؓ(f)叛_g用? <p>   【规?】避免数l或指针的下标越界,特别要当?j)发生“多1”或者“少1”操作? <p>    【规?】动态内存的甌与释攑ֿ配对,防止内存泄漏? <p>  【规?】用free或delete释放?jin)内存之后,立即指针设|ؓ(f)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该入口地址是函数指针所指向的地址。有?jin)指向函数的指针变量后,可用该指针变量调用函敎ͼ如同用指针变量可引用其他类型变量一P在这些概念上是一致的。函数指针有两个用途:(x)调用函数和做函数?a >参数?

 

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

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

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

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

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

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

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

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

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

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

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

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

  其定义格式如下所C:(x)

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

  { 函数?/a> }

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

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

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

  W一U,标准Ҏ(gu)Q?

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

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

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

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

  W二U,蒙骗法:(x)

  管函数不是变量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果是:(x)</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果是:(x)</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是指针,它们指向?jin)相同的帔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.pzjc.net.cn" target="_blank">þרƷ</a>| <a href="http://www.kmkiddieedu.cn" target="_blank">þþþһƷ</a>| <a href="http://www.zhaiseng.cn" target="_blank">þþþѾƷ</a>| <a href="http://www.hbxasn.cn" target="_blank">һaƬþëƬ</a>| <a href="http://www.wenmis.cn" target="_blank">AVþþþò</a>| <a href="http://www.996acg.cn" target="_blank">þþƷѿ޹AV</a>| <a href="http://www.1314liao.cn" target="_blank">þòӰ</a>| <a href="http://www.zheibvgsz.cn" target="_blank">þŷƷ</a>| <a href="http://www.meelin.cn" target="_blank">91þþƷӰ</a>| <a href="http://www.laqn.cn" target="_blank">AVþþƷ</a>| <a href="http://www.q126.cn" target="_blank">ѾþþƷѾѾ</a>| <a href="http://www.lubricantbrand.cn" target="_blank">˾þô߽av </a>| <a href="http://www.gdswky.cn" target="_blank">鶹þþ9ԴƬ</a>| <a href="http://www.nzlx.cn" target="_blank">˾þþƷһ</a>| <a href="http://www.nxxdz.cn" target="_blank">þ޾Ʒ벥</a>| <a href="http://www.movie38.cn" target="_blank">þþþAV</a>| <a href="http://www.kvgr.cn" target="_blank">Ժձһձþ </a>| <a href="http://www.99341.cn" target="_blank">þþƷŷƬ</a>| <a href="http://www.lc351.cn" target="_blank">ҹŷƷþþþþþ</a>| <a href="http://www.qdaigo.com.cn" target="_blank">þü¶</a>| <a href="http://www.rnif.cn" target="_blank">þ˽˹ƷvA</a>| <a href="http://www.macsales.cn" target="_blank">˾þۺӰԺ</a>| <a href="http://www.ktze6z.cn" target="_blank">ƷþþþþþþþĻ </a>| <a href="http://www.szmry.cn" target="_blank">þþþþþþ뾫Ʒպ</a>| <a href="http://www.wqit.com.cn" target="_blank">þþƷƷƷ</a>| <a href="http://www.zgyjys.cn" target="_blank">ɫۺϾþҹɫƷ</a>| <a href="http://www.cn-sina.cn" target="_blank">þwww˳ɿƬ</a>| <a href="http://www.yvresse.cn" target="_blank">þþùƷ</a>| <a href="http://www.tonghuaguan.cn" target="_blank">ɫ88þþþø߳ۺӰԺ</a>| <a href="http://www.fwjs.net.cn" target="_blank">Ʒþ¶</a>| <a href="http://www.tongshenghu.com.cn" target="_blank">ƷþþĻ</a>| <a href="http://www.shangxuewenhua.cn" target="_blank">AVɫۺϾþAVɫۺ</a>| <a href="http://www.fxmodels.com.cn" target="_blank">99Ʒ99þþþþ97</a>| <a href="http://www.wyj416.cn" target="_blank">һɫۺϾþ</a>| <a href="http://www.qtvc.cn" target="_blank">ɫɫۺϾþҹҹ</a>| <a href="http://www.mjiniu.cn" target="_blank">Ļav鲻þ</a>| <a href="http://www.xmjbjd.cn" target="_blank">þҹۺϾþ</a>| <a href="http://www.yhshoes.cn" target="_blank">þþþþѹۿ</a>| <a href="http://www.99yingyuan.cn" target="_blank">ŷձþùʵҶ԰ </a>| <a href="http://www.shecb2b.com.cn" target="_blank">þӰӹ</a>| <a href="http://www.baotourcw.cn" target="_blank">ھƷ99þ</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>