﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-GLORY-随笔分类-C/C++</title><link>http://www.cppblog.com/meglory/category/13998.html</link><description /><language>zh-cn</language><lastBuildDate>Sat, 12 Mar 2011 08:25:25 GMT</lastBuildDate><pubDate>Sat, 12 Mar 2011 08:25:25 GMT</pubDate><ttl>60</ttl><item><title>约瑟夫环</title><link>http://www.cppblog.com/meglory/archive/2011/03/11/141582.html</link><dc:creator>meglory</dc:creator><author>meglory</author><pubDate>Fri, 11 Mar 2011 10:55:00 GMT</pubDate><guid>http://www.cppblog.com/meglory/archive/2011/03/11/141582.html</guid><wfw:comment>http://www.cppblog.com/meglory/comments/141582.html</wfw:comment><comments>http://www.cppblog.com/meglory/archive/2011/03/11/141582.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/meglory/comments/commentRss/141582.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/meglory/services/trackbacks/141582.html</trackback:ping><description><![CDATA[A fundamental problem. Just to review some stuff.<br><br>
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #000000;">#include</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">stdio.h</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #000000;">#include</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">stdlib.h</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">struct</span><span style="color: #000000;">&nbsp;node{<br></span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;value;<br></span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">struct</span><span style="color: #000000;">&nbsp;node</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;next;<br></span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #000000;">};<br></span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #000000;">typedef&nbsp;</span><span style="color: #0000ff;">struct</span><span style="color: #000000;">&nbsp;node&nbsp;NODE;<br></span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #000000;">typedef&nbsp;NODE</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;NODEPTR;<br></span><span style="color: #008080;">10</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">11</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;main()<br></span><span style="color: #008080;">12</span>&nbsp;<span style="color: #000000;">{<br></span><span style="color: #008080;">13</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i;<br></span><span style="color: #008080;">14</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;count;<br></span><span style="color: #008080;">15</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;N,M;<br></span><span style="color: #008080;">16</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;NODEPTR&nbsp;head</span><span style="color: #000000;">=</span><span style="color: #000000;">(NODEPTR)malloc(</span><span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(NODE));<br></span><span style="color: #008080;">17</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;NODEPTR&nbsp;prePtr</span><span style="color: #000000;">=</span><span style="color: #000000;">head;<br></span><span style="color: #008080;">18</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;NODEPTR&nbsp;currPtr;<br></span><span style="color: #008080;">19</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;NODEPTR&nbsp;temp;<br></span><span style="color: #008080;">20</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">21</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%d&nbsp;%d</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">N,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">M);<br></span><span style="color: #008080;">22</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;count</span><span style="color: #000000;">=</span><span style="color: #000000;">N;<br></span><span style="color: #008080;">23</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">24</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i</span><span style="color: #000000;">=</span><span style="color: #000000;">1</span><span style="color: #000000;">;i</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">N;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br></span><span style="color: #008080;">25</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">26</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;currPtr</span><span style="color: #000000;">=</span><span style="color: #000000;">(NODEPTR)malloc(</span><span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(NODE));<br></span><span style="color: #008080;">27</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;currPtr</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">value</span><span style="color: #000000;">=</span><span style="color: #000000;">i;<br></span><span style="color: #008080;">28</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prePtr</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">next</span><span style="color: #000000;">=</span><span style="color: #000000;">currPtr;<br></span><span style="color: #008080;">29</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prePtr</span><span style="color: #000000;">=</span><span style="color: #000000;">currPtr;<br></span><span style="color: #008080;">30</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">31</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">32</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;currPtr</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">next</span><span style="color: #000000;">=</span><span style="color: #000000;">head</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">next;<br></span><span style="color: #008080;">33</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;currPtr</span><span style="color: #000000;">=</span><span style="color: #000000;">head</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">next;<br></span><span style="color: #008080;">34</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">35</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">while</span><span style="color: #000000;">(count</span><span style="color: #000000;">--</span><span style="color: #000000;">)<br></span><span style="color: #008080;">36</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">37</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i</span><span style="color: #000000;">=</span><span style="color: #000000;">1</span><span style="color: #000000;">;i</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">M</span><span style="color: #000000;">-</span><span style="color: #000000;">2</span><span style="color: #000000;">;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br></span><span style="color: #008080;">38</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;currPtr</span><span style="color: #000000;">=</span><span style="color: #000000;">currPtr</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">next;<br></span><span style="color: #008080;">39</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">40</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp</span><span style="color: #000000;">=</span><span style="color: #000000;">currPtr</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">next;<br></span><span style="color: #008080;">41</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%d&nbsp;is&nbsp;out\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,temp</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">value);<br></span><span style="color: #008080;">42</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;currPtr</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">next</span><span style="color: #000000;">=</span><span style="color: #000000;">temp</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">next;<br></span><span style="color: #008080;">43</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;currPtr</span><span style="color: #000000;">=</span><span style="color: #000000;">currPtr</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">next;<br></span><span style="color: #008080;">44</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;free(temp);<br></span><span style="color: #008080;">45</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">46</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">47</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">48</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br></span><span style="color: #008080;">49</span>&nbsp;<span style="color: #000000;">}<br></span><span style="color: #008080;">50</span>&nbsp;<span style="color: #000000;"></span></div>
<br> <img src ="http://www.cppblog.com/meglory/aggbug/141582.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/meglory/" target="_blank">meglory</a> 2011-03-11 18:55 <a href="http://www.cppblog.com/meglory/archive/2011/03/11/141582.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>危险的vector::erase</title><link>http://www.cppblog.com/meglory/archive/2011/03/11/141568.html</link><dc:creator>meglory</dc:creator><author>meglory</author><pubDate>Fri, 11 Mar 2011 07:41:00 GMT</pubDate><guid>http://www.cppblog.com/meglory/archive/2011/03/11/141568.html</guid><wfw:comment>http://www.cppblog.com/meglory/comments/141568.html</wfw:comment><comments>http://www.cppblog.com/meglory/archive/2011/03/11/141568.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/meglory/comments/commentRss/141568.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/meglory/services/trackbacks/141568.html</trackback:ping><description><![CDATA[<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #008080">&nbsp;1</span>&nbsp;<span style="COLOR: #000000">#include</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">iostream</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;2</span>&nbsp;<span style="COLOR: #000000">#include</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">vector</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;3</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">namespace</span><span style="COLOR: #000000">&nbsp;std;<br></span><span style="COLOR: #008080">&nbsp;4</span>&nbsp;<span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;5</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main()<br></span><span style="COLOR: #008080">&nbsp;6</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">&nbsp;7</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;vector</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;a;<br></span><span style="COLOR: #008080">&nbsp;8</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;a.push_back(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">&nbsp;9</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;a.push_back(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">10</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;a.push_back(</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">11</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;a.push_back(</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">12</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;a.push_back(</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">13</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br></span><span style="COLOR: #008080">14</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;vector</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">::iterator&nbsp;pos</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">a.begin()</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">15</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;vector</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">::iterator&nbsp;temp</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">pos</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">16</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">temp&nbsp;now&nbsp;is</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&lt;&lt;*</span><span style="COLOR: #000000">temp</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">endl;<br></span><span style="COLOR: #008080">17</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br></span><span style="COLOR: #008080">18</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;a.erase(pos);<br></span><span style="COLOR: #008080">19</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br></span><span style="COLOR: #008080">20</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">temp&nbsp;now&nbsp;is</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&lt;&lt;*</span><span style="COLOR: #000000">temp</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">endl;<br></span><span style="COLOR: #008080">21</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br></span><span style="COLOR: #008080">22</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;system(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">pause</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">23</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">24</span>&nbsp;<span style="COLOR: #000000">}</span></div>
<p>今天在用STL写约瑟夫问题的时候，发现vector的行为总是产生诡异的结果，让我百思不得其解。<br><br>看上面代码：<br>一个vector里面有1到5，总共5个元素。把一个迭代器pos指向第三个元素3，另外一个temp指向第四个元素4，然后调用erase把第三个元素抹掉。<br>注意，在这个时候继续解引用temp的时候，会发现它指向的元素神奇的变成了5。<br><br>问题就处在erase上面，在C++ Reference上面写道：<br>Because vectors keep an array format, erasing on positions other than the vector <a href="http://www.cplusplus.com/vector::end"><u><font color=#0066cc>end</font></u></a> also moves all the elements after the segment erased to their new positions, which may not be a method as efficient as erasing in other kinds of sequence containers (<a href="http://www.cplusplus.com/deque"><u><font color=#0066cc>deque</font></u></a>, <a href="http://www.cplusplus.com/list"><u><font color=#0066cc>list</font></u></a>).<br><br>This invalidates all iterator and references to elements after <em>position</em> or <em>first</em>. <br><br>删除vector一个元素，导致它后面的元素全部移动到新的位置，所以导致这个元素之后的所有迭代器都失效。<br><br><br>在使用一个函数前应该对它的行为有清楚的了解。谨记。</p>
<img src ="http://www.cppblog.com/meglory/aggbug/141568.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/meglory/" target="_blank">meglory</a> 2011-03-11 15:41 <a href="http://www.cppblog.com/meglory/archive/2011/03/11/141568.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>printf的返回值</title><link>http://www.cppblog.com/meglory/archive/2010/12/23/137277.html</link><dc:creator>meglory</dc:creator><author>meglory</author><pubDate>Thu, 23 Dec 2010 03:39:00 GMT</pubDate><guid>http://www.cppblog.com/meglory/archive/2010/12/23/137277.html</guid><wfw:comment>http://www.cppblog.com/meglory/comments/137277.html</wfw:comment><comments>http://www.cppblog.com/meglory/archive/2010/12/23/137277.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/meglory/comments/commentRss/137277.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/meglory/services/trackbacks/137277.html</trackback:ping><description><![CDATA[<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #000000;">#include</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">stdio.h</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;main()<br></span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #000000;">{<br></span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i</span><span style="color: #000000;">=</span><span style="color: #000000;">43</span><span style="color: #000000;">;<br></span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%d</span><span style="color: #000000;">"</span><span style="color: #000000;">,printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%d</span><span style="color: #000000;">"</span><span style="color: #000000;">,printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%d</span><span style="color: #000000;">"</span><span style="color: #000000;">,i)));<br></span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;<br></span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br></span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #000000;">}<br></span><span style="color: #008080;">10</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">11</span>&nbsp;<span style="color: #000000;">这是一个社区的验证码，让输出结果，很有意思。<br></span><span style="color: #008080;">12</span>&nbsp;<span style="color: #000000;">结果是4321.<br></span><span style="color: #008080;">13</span>&nbsp;<span style="color: #000000;">printf()的返回值：On&nbsp;success,&nbsp;the&nbsp;total&nbsp;number&nbsp;of&nbsp;characters&nbsp;written&nbsp;</span><span style="color: #0000ff;">is</span><span style="color: #000000;">&nbsp;returned.<br></span><span style="color: #008080;">14</span>&nbsp;<span style="color: #000000;">On&nbsp;failure,&nbsp;a&nbsp;negative&nbsp;number&nbsp;</span><span style="color: #0000ff;">is</span><span style="color: #000000;">&nbsp;returned.</span></div>
<br><img src ="http://www.cppblog.com/meglory/aggbug/137277.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/meglory/" target="_blank">meglory</a> 2010-12-23 11:39 <a href="http://www.cppblog.com/meglory/archive/2010/12/23/137277.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C语言声明的神器解码环</title><link>http://www.cppblog.com/meglory/archive/2010/06/09/117507.html</link><dc:creator>meglory</dc:creator><author>meglory</author><pubDate>Wed, 09 Jun 2010 15:09:00 GMT</pubDate><guid>http://www.cppblog.com/meglory/archive/2010/06/09/117507.html</guid><wfw:comment>http://www.cppblog.com/meglory/comments/117507.html</wfw:comment><comments>http://www.cppblog.com/meglory/archive/2010/06/09/117507.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/meglory/comments/commentRss/117507.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/meglory/services/trackbacks/117507.html</trackback:ping><description><![CDATA[<span style="FONT-SIZE: 10pt">今天看到有位童鞋在TopLanguage上面提了个问题：<br>int a[][3]={1,2,3,4,5,6};<br>int (*b)[3]=a;<br><br>不用编译器，说说b里是什么？<br><br>其实这种问题在《C专家编程》的P65中的神器解码环中有很详尽的解释。<br>在这里首先考察等式左边的int (*b)[3]<br><br>
<table style="WIDTH: 472px; HEIGHT: 146px" border=1>
    <tbody>
        <tr>
            <td style="FONT-SIZE: 10pt">1.最左边的标识符是b</td>
            <td style="FONT-SIZE: 10pt">表示b是...<br></td>
        </tr>
        <tr>
            <td style="FONT-SIZE: 10pt">2.b的左边是*<br></td>
            <td style="FONT-SIZE: 10pt">表明b是指向...的指针<br></td>
        </tr>
        <tr>
            <td style="FONT-SIZE: 10pt" vAlign=center align=left>3.*的左边是左括号 <br></td>
            <td style="FONT-SIZE: 10pt" vAlign=center align=left>左括号把已经处理的部分声明组合在一起，知道遇见相应的右括号<br></td>
        </tr>
        <tr>
            <td style="FONT-SIZE: 10pt" vAlign=center align=left>4.(*b)左边是方括号<br></td>
            <td style="FONT-SIZE: 10pt" vAlign=center align=left>表示大小为3的数组 <br></td>
        </tr>
        <tr>
            <td style="FONT-SIZE: 10pt" vAlign=center align=left>5.剩下的符号形成基本类型int <br></td>
            <td style="FONT-SIZE: 10pt" vAlign=center align=left>表明b是一个指针，它指向一个大小为3的int型数组。 <br></td>
        </tr>
    </tbody>
</table>
<br>而把a的值赋给b，表明是将b指向a。<br><br>之后<a href="http://sunxiunan.com/">sagasw</a>给出一个demo,可以更清楚的了解指针相关各种。<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;argc,&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;argv[])<br>{<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;a[][</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">{</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">6</span><span style="COLOR: #000000">};<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">b)[</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">a;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">a&nbsp;%p&nbsp;b&nbsp;%p&nbsp;\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;a,&nbsp;b);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">b;<br>&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">a1&nbsp;%p&nbsp;a10&nbsp;%p&nbsp;a11&nbsp;%p&nbsp;b&nbsp;%p&nbsp;\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;a[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">],&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">a[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">][</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">],&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">a[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">][</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">],&nbsp;b);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">b;<br>&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">a&nbsp;%p&nbsp;b&nbsp;%p&nbsp;\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;a[</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">],&nbsp;b);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><br>}<br></span></div>
<br></span>
<img src ="http://www.cppblog.com/meglory/aggbug/117507.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/meglory/" target="_blank">meglory</a> 2010-06-09 23:09 <a href="http://www.cppblog.com/meglory/archive/2010/06/09/117507.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C++输出汉字</title><link>http://www.cppblog.com/meglory/archive/2010/05/12/115228.html</link><dc:creator>meglory</dc:creator><author>meglory</author><pubDate>Wed, 12 May 2010 13:45:00 GMT</pubDate><guid>http://www.cppblog.com/meglory/archive/2010/05/12/115228.html</guid><wfw:comment>http://www.cppblog.com/meglory/comments/115228.html</wfw:comment><comments>http://www.cppblog.com/meglory/archive/2010/05/12/115228.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/meglory/comments/commentRss/115228.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/meglory/services/trackbacks/115228.html</trackback:ping><description><![CDATA[<div style="padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; width: 98%;"><font color="#0000ff">//输出汉字</font></div>
<div style="padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;temp[</span><span style="color: #000000;">3</span><span style="color: #000000;">];<br></span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;c;<br><br>temp[</span><span style="color: #000000;">0</span><span style="color: #000000;">]</span><span style="color: #000000;">=</span><span style="color: #000000;">getchar();<br>temp[</span><span style="color: #000000;">1</span><span style="color: #000000;">]</span><span style="color: #000000;">=</span><span style="color: #000000;">getchar();<br>temp[</span><span style="color: #000000;">2</span><span style="color: #000000;">]</span><span style="color: #000000;">=</span><span style="color: #000000;">'</span><span style="color: #000000;">\0</span><span style="color: #000000;">'</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">temp</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;<br></span></div><img src ="http://www.cppblog.com/meglory/aggbug/115228.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/meglory/" target="_blank">meglory</a> 2010-05-12 21:45 <a href="http://www.cppblog.com/meglory/archive/2010/05/12/115228.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>