﻿<?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>BlogJava-kainster-随笔分类-《C&amp;Pointer》笔记</title><link>http://www.blogjava.net/kainster/category/35342.html</link><description /><language>zh-cn</language><lastBuildDate>Sun, 19 Oct 2008 23:12:54 GMT</lastBuildDate><pubDate>Sun, 19 Oct 2008 23:12:54 GMT</pubDate><ttl>60</ttl><item><title>几个有用的函数</title><link>http://www.blogjava.net/kainster/archive/2008/10/19/235298.html</link><dc:creator>kainster</dc:creator><author>kainster</author><pubDate>Sun, 19 Oct 2008 06:28:00 GMT</pubDate><guid>http://www.blogjava.net/kainster/archive/2008/10/19/235298.html</guid><wfw:comment>http://www.blogjava.net/kainster/comments/235298.html</wfw:comment><comments>http://www.blogjava.net/kainster/archive/2008/10/19/235298.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kainster/comments/commentRss/235298.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kainster/services/trackbacks/235298.html</trackback:ping><description><![CDATA[<ol>
    <li>tmpfile()<br />
    &nbsp;生成一个临时文件 </li>
</ol>
<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%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">FILE&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">f;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;f&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;tmpfile();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;printf(</span><span style="color: #000000">"</span><span style="color: #000000">%s\n</span><span style="color: #000000">"</span><span style="color: #000000">,f</span><span style="color: #000000">-&gt;</span><span style="color: #000000">_tmpfname);</span></div>
<p><br />
&nbsp;<br />
&nbsp;2. rename(char const *oldname, char const *newname);<br />
重命名一个文件<br />
</p>
<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%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;the&nbsp;first&nbsp;argument&nbsp;is&nbsp;old&nbsp;name&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;the&nbsp;second&nbsp;is&nbsp;new&nbsp;name</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #000000">&nbsp;rename(&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">D://yf.bmp</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">D://yfasd.bmp</span><span style="color: #000000">"</span><span style="color: #000000">);</span></div>
<p><br />
3. __FILE__,__DATE__,__TIME__</p>
<p>&nbsp;</p>
<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%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">&nbsp;printf(</span><span style="color: #000000">"</span><span style="color: #000000">compiled&nbsp;FILE&nbsp;is&nbsp;%s\n</span><span style="color: #000000">"</span><span style="color: #000000">,__FILE__);</span><span style="color: #008000">//</span><span style="color: #008000">源文件所在路径</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #000000">&nbsp;printf(</span><span style="color: #000000">"</span><span style="color: #000000">compiled&nbsp;DATE&nbsp;is&nbsp;%s\n</span><span style="color: #000000">"</span><span style="color: #000000">,__DATE__);</span><span style="color: #008000">//</span><span style="color: #008000">文件被编译的日期</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #000000">&nbsp;printf(</span><span style="color: #000000">"</span><span style="color: #000000">compiled&nbsp;TIME&nbsp;is&nbsp;%s\n</span><span style="color: #000000">"</span><span style="color: #000000">,__TIME__);</span><span style="color: #008000">//</span><span style="color: #008000">文件被编译的时间</span></div>
<p><br />
&nbsp;4. clock();</p>
<p>返回的是程序运行到当前行所经历的时间，单位是机器的cpu时间数，如果要转换成秒，只需要除以CLOCKS_PER_SEC常量</p>
<p>&nbsp;</p>
<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%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">printf(</span><span style="color: #000000">"</span><span style="color: #000000">The&nbsp;program&nbsp;cost&nbsp;%ld&nbsp;seconds\n</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;clock()&nbsp;</span><span style="color: #000000">/</span><span style="color: #000000">&nbsp;CLOCKS_PER_SEC&nbsp;);</span></div>
<br />
&nbsp;5. 执行系统命令<br />
void system(char const *command);<br />
比如 system( "dir" ); <br />
<br />
&nbsp;6. qsort &amp; bsearch<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%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;intCompare(</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">const</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">a,&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">const</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">b)<br />
<img id="Codehighlighter1_45_76_Open_Image" onclick="this.style.display='none'; Codehighlighter1_45_76_Open_Text.style.display='none'; Codehighlighter1_45_76_Closed_Image.style.display='inline'; Codehighlighter1_45_76_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_45_76_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_45_76_Closed_Text.style.display='none'; Codehighlighter1_45_76_Open_Image.style.display='inline'; Codehighlighter1_45_76_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_45_76_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_45_76_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">(</span><span style="color: #0000ff">int</span><span style="color: #000000">*</span><span style="color: #000000">)a&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">(</span><span style="color: #0000ff">int</span><span style="color: #000000">*</span><span style="color: #000000">)b;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;qsort_And_bsearch()<br />
<img id="Codehighlighter1_104_522_Open_Image" onclick="this.style.display='none'; Codehighlighter1_104_522_Open_Text.style.display='none'; Codehighlighter1_104_522_Closed_Image.style.display='inline'; Codehighlighter1_104_522_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_104_522_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_104_522_Closed_Text.style.display='none'; Codehighlighter1_104_522_Open_Image.style.display='inline'; Codehighlighter1_104_522_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_104_522_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_104_522_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;array[&nbsp;</span><span style="color: #000000">100</span><span style="color: #000000">&nbsp;];<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">(&nbsp;i</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;i</span><span style="color: #000000">&lt;</span><span style="color: #000000">100</span><span style="color: #000000">;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">&nbsp;)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array[i]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;rand()&nbsp;</span><span style="color: #000000">%</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">100</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;qsort(&nbsp;array,&nbsp;</span><span style="color: #000000">100</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">sizeof</span><span style="color: #000000">(</span><span style="color: #0000ff">int</span><span style="color: #000000">)&nbsp;,&nbsp;intCompare);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">(&nbsp;i</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;i</span><span style="color: #000000">&lt;</span><span style="color: #000000">100</span><span style="color: #000000">;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">&nbsp;)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">%d,</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;array[i]&nbsp;);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000">"</span><span style="color: #000000">\n</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;key&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">6</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&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">ans;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;ans&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">*</span><span style="color: #000000">)(&nbsp;bsearch(&nbsp;</span><span style="color: #000000">&amp;</span><span style="color: #000000">key,&nbsp;array,&nbsp;</span><span style="color: #000000">100</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">sizeof</span><span style="color: #000000">(</span><span style="color: #0000ff">int</span><span style="color: #000000">),&nbsp;intCompare&nbsp;)&nbsp;);&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;bsearch&nbsp;返回一个指向找到的元素的指针，如果没有找到就返回NULL</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(&nbsp;ans&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;NULL)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">ans&nbsp;is&nbsp;at&nbsp;the&nbsp;position&nbsp;of&nbsp;%d</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;ans&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;array&nbsp;);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span></div>
<img src ="http://www.blogjava.net/kainster/aggbug/235298.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kainster/" target="_blank">kainster</a> 2008-10-19 14:28 <a href="http://www.blogjava.net/kainster/archive/2008/10/19/235298.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>printf( "%c\n", *("xyz"+1) );</title><link>http://www.blogjava.net/kainster/archive/2008/10/19/235278.html</link><dc:creator>kainster</dc:creator><author>kainster</author><pubDate>Sun, 19 Oct 2008 03:14:00 GMT</pubDate><guid>http://www.blogjava.net/kainster/archive/2008/10/19/235278.html</guid><wfw:comment>http://www.blogjava.net/kainster/comments/235278.html</wfw:comment><comments>http://www.blogjava.net/kainster/archive/2008/10/19/235278.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kainster/comments/commentRss/235278.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kainster/services/trackbacks/235278.html</trackback:ping><description><![CDATA[printf( "%c\n", *("xyz"+1) );<br />
将会输出y<br />
因为"xyz"实际上是指向字符串常量的指针，对它加1就是把指针向后移一个位置，所以指向y<br />
&nbsp;<br />
类似的<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%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">#include&nbsp;</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 />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;mystery(&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;n)<br />
<img id="Codehighlighter1_42_102_Open_Image" onclick="this.style.display='none'; Codehighlighter1_42_102_Open_Text.style.display='none'; Codehighlighter1_42_102_Closed_Image.style.display='inline'; Codehighlighter1_42_102_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_42_102_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_42_102_Closed_Text.style.display='none'; Codehighlighter1_42_102_Open_Image.style.display='inline'; Codehighlighter1_42_102_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_42_102_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_42_102_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;n&nbsp;</span><span style="color: #000000">+=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">5</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;n&nbsp;</span><span style="color: #000000">%=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">10</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;printf(&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">%s\n</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">**********</span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #000000">10</span><span style="color: #000000">-</span><span style="color: #000000">n&nbsp;);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;main()<br />
<img id="Codehighlighter1_116_166_Open_Image" onclick="this.style.display='none'; Codehighlighter1_116_166_Open_Text.style.display='none'; Codehighlighter1_116_166_Closed_Image.style.display='inline'; Codehighlighter1_116_166_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_116_166_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_116_166_Closed_Text.style.display='none'; Codehighlighter1_116_166_Open_Image.style.display='inline'; Codehighlighter1_116_166_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_116_166_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_116_166_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">(&nbsp;i</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;i</span><span style="color: #000000">&lt;</span><span style="color: #000000">20</span><span style="color: #000000">;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">&nbsp;)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mystery(&nbsp;i&nbsp;);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span></div>
运行结果为<br />
<p>*****<br />
******<br />
*******<br />
********<br />
*********</p>
<p>*<br />
**<br />
***<br />
****<br />
*****<br />
******<br />
*******<br />
********<br />
*********</p>
<p>*<br />
**<br />
***<br />
****<br />
Press any key to continue</p>
<br />
<img src ="http://www.blogjava.net/kainster/aggbug/235278.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kainster/" target="_blank">kainster</a> 2008-10-19 11:14 <a href="http://www.blogjava.net/kainster/archive/2008/10/19/235278.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>strlen</title><link>http://www.blogjava.net/kainster/archive/2008/10/18/235126.html</link><dc:creator>kainster</dc:creator><author>kainster</author><pubDate>Sat, 18 Oct 2008 01:04:00 GMT</pubDate><guid>http://www.blogjava.net/kainster/archive/2008/10/18/235126.html</guid><wfw:comment>http://www.blogjava.net/kainster/comments/235126.html</wfw:comment><comments>http://www.blogjava.net/kainster/archive/2008/10/18/235126.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kainster/comments/commentRss/235126.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kainster/services/trackbacks/235126.html</trackback:ping><description><![CDATA[strlen返回的是size_t，也就是无符号整型<br />
所以<br />
if( strlen(str1) &gt;= strlen(str2) )<br />
运行结果将会是符合编写意图的<br />
而<br />
if( strlen(str1) - strlen(str2) &gt;= 0 )<br />
则会产生不符合意图的结果，因为两个无符号整型相减仍然是无符号整型，也就是永远都会大于0
 <img src ="http://www.blogjava.net/kainster/aggbug/235126.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kainster/" target="_blank">kainster</a> 2008-10-18 09:04 <a href="http://www.blogjava.net/kainster/archive/2008/10/18/235126.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>八皇后</title><link>http://www.blogjava.net/kainster/archive/2008/10/17/234989.html</link><dc:creator>kainster</dc:creator><author>kainster</author><pubDate>Fri, 17 Oct 2008 09:37:00 GMT</pubDate><guid>http://www.blogjava.net/kainster/archive/2008/10/17/234989.html</guid><wfw:comment>http://www.blogjava.net/kainster/comments/234989.html</wfw:comment><comments>http://www.blogjava.net/kainster/archive/2008/10/17/234989.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kainster/comments/commentRss/234989.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kainster/services/trackbacks/234989.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 八皇后#define&nbsp;NUM&nbsp;8enum&nbsp;status&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;NORMAL&nbsp;=&nbsp;0,//没棋子&nbsp;&nbsp;&nbsp;&nbsp;CAPTURED&nbsp;=&nbsp;1,//后在的位置&nbsp;&nbsp;&nbsp;&nbsp;INFLUENCED&...&nbsp;&nbsp;<a href='http://www.blogjava.net/kainster/archive/2008/10/17/234989.html'>阅读全文</a><img src ="http://www.blogjava.net/kainster/aggbug/234989.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kainster/" target="_blank">kainster</a> 2008-10-17 17:37 <a href="http://www.blogjava.net/kainster/archive/2008/10/17/234989.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>int (*p)[10];</title><link>http://www.blogjava.net/kainster/archive/2008/10/17/234819.html</link><dc:creator>kainster</dc:creator><author>kainster</author><pubDate>Fri, 17 Oct 2008 01:41:00 GMT</pubDate><guid>http://www.blogjava.net/kainster/archive/2008/10/17/234819.html</guid><wfw:comment>http://www.blogjava.net/kainster/comments/234819.html</wfw:comment><comments>http://www.blogjava.net/kainster/archive/2008/10/17/234819.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kainster/comments/commentRss/234819.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kainster/services/trackbacks/234819.html</trackback:ping><description><![CDATA[<p>int (*p)[10];<br />
声明的是指向一个拥有十个整型元素的数组的指针<br />
int matrix[3][10];<br />
int (*p)[10] = matrix;</p>
<p>类似的 <br />
int *p = &amp;matrix[0][0];<br />
int *p = matrix[0];<br />
但是应该注意避免：<br />
int (*p)[] = matrix;<br />
这里省略了数组长度，会默认成空数组的长度，有的编译器可能不能捕捉到这样的错误</p>
<br />
当把二维数组作为函数参数的时候可以<br />
void func( int (*mat)[10]);<br />
或者 <br />
void func( int mat[][10]);<br />
但是不能这样：<br />
void func( int **mat);<br />
因为指向整型指针的指针和指向整型数组的指针是不一样的<br />
<br />
<br />
int *p[10]; 与 int (*p)[10];不同，int *p[10]; 声明的是指针数组，该数组存储了十个指向整型的指针
 <img src ="http://www.blogjava.net/kainster/aggbug/234819.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kainster/" target="_blank">kainster</a> 2008-10-17 09:41 <a href="http://www.blogjava.net/kainster/archive/2008/10/17/234819.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>传址</title><link>http://www.blogjava.net/kainster/archive/2008/10/17/234815.html</link><dc:creator>kainster</dc:creator><author>kainster</author><pubDate>Fri, 17 Oct 2008 01:22:00 GMT</pubDate><guid>http://www.blogjava.net/kainster/archive/2008/10/17/234815.html</guid><wfw:comment>http://www.blogjava.net/kainster/comments/234815.html</wfw:comment><comments>http://www.blogjava.net/kainster/archive/2008/10/17/234815.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kainster/comments/commentRss/234815.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kainster/services/trackbacks/234815.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<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%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">#include&nbsp;</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 />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;increasePointer(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">p)<br />
<img id="Codehighlighter1_48_77_Open_Image" onclick="this.style.display='none'; Codehighlighter1_48_77_Open_Text.style.display='none'; Codehighlighter1_48_77_Closed_Image.style.display='inline'; Codehighlighter1_48_77_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_48_77_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_48_77_Closed_Text.style.display='none'; Codehighlighter1_48_77_Open_Image.style.display='inline'; Codehighlighter1_48_77_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_48_77_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_48_77_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;p</span><span style="color: #000000">++</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000">"</span><span style="color: #000000">%d\n</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">*</span><span style="color: #000000">p);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;main()<br />
<img id="Codehighlighter1_90_177_Open_Image" onclick="this.style.display='none'; Codehighlighter1_90_177_Open_Text.style.display='none'; Codehighlighter1_90_177_Closed_Image.style.display='inline'; Codehighlighter1_90_177_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_90_177_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_90_177_Closed_Text.style.display='none'; Codehighlighter1_90_177_Open_Image.style.display='inline'; Codehighlighter1_90_177_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_90_177_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_90_177_Open_Text"><span style="color: #000000">{<br />
<img id="Codehighlighter1_105_109_Open_Image" onclick="this.style.display='none'; Codehighlighter1_105_109_Open_Text.style.display='none'; Codehighlighter1_105_109_Closed_Image.style.display='inline'; Codehighlighter1_105_109_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_105_109_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_105_109_Closed_Text.style.display='none'; Codehighlighter1_105_109_Open_Image.style.display='inline'; Codehighlighter1_105_109_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;arr[]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span id="Codehighlighter1_105_109_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_105_109_Open_Text"><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><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&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">p&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;arr;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;increasePointer(p);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&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">,</span><span style="color: #000000">*</span><span style="color: #000000">p);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&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 />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span></div>
程序的运行结果会是：<br />
2<br />
1<br />
因为其实所谓的传址对于地址值而言还是传的是值，只不过这个值是一个地址，也就是说传递的时候传递的是原来指针的一个拷贝，而不是原指针本身
 <img src ="http://www.blogjava.net/kainster/aggbug/234815.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kainster/" target="_blank">kainster</a> 2008-10-17 09:22 <a href="http://www.blogjava.net/kainster/archive/2008/10/17/234815.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>