﻿<?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-xsong-随笔分类-c</title><link>http://www.blogjava.net/ghost/category/48568.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 16 Sep 2011 21:43:26 GMT</lastBuildDate><pubDate>Fri, 16 Sep 2011 21:43:26 GMT</pubDate><ttl>60</ttl><item><title>c sizeof 关键字</title><link>http://www.blogjava.net/ghost/archive/2011/09/16/358796.html</link><dc:creator>xsong</dc:creator><author>xsong</author><pubDate>Fri, 16 Sep 2011 07:04:00 GMT</pubDate><guid>http://www.blogjava.net/ghost/archive/2011/09/16/358796.html</guid><wfw:comment>http://www.blogjava.net/ghost/comments/358796.html</wfw:comment><comments>http://www.blogjava.net/ghost/archive/2011/09/16/358796.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ghost/comments/commentRss/358796.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ghost/services/trackbacks/358796.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><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 /><br /></span><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; ">&nbsp;</span><span style="color: #000000; ">**</span><span style="color: #000000; ">argv)&nbsp;{<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">/*</span><span style="color: #008000; ">*<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;sizeof&nbsp;&nbsp;关键字<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">*/</span><span style="color: #000000; "><br />&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; ">0</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">sizeof&nbsp;int&nbsp;%lu&nbsp;\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,</span><span style="color: #0000FF; ">sizeof</span><span style="color: #000000; ">(i));&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;4</span><span style="color: #008000; "><br /></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; ">p</span><span style="color: #000000; ">=</span><span style="color: #000000; ">NULL;<br />&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">sizeof&nbsp;point&nbsp;%lu&nbsp;\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;,</span><span style="color: #0000FF; ">sizeof</span><span style="color: #000000; ">(p)&nbsp;)&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;8</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">sizeof&nbsp;*p&nbsp;%lu&nbsp;\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,</span><span style="color: #0000FF; ">sizeof</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">p);&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;4</span><span style="color: #008000; "><br /></span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;a[</span><span style="color: #000000; ">100</span><span style="color: #000000; ">];<br />&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">sizeof&nbsp;array&nbsp;%lu&nbsp;\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #0000FF; ">sizeof</span><span style="color: #000000; ">(a));</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;100*4</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">sizeof&nbsp;a[100]&nbsp;%lu&nbsp;\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,</span><span style="color: #0000FF; ">sizeof</span><span style="color: #000000; ">(a[</span><span style="color: #000000; ">100</span><span style="color: #000000; ">]));&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;4</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">sizeof&nbsp;&amp;a&nbsp;%lu&nbsp;\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #0000FF; ">sizeof</span><span style="color: #000000; ">(</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">a));&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;8&nbsp;&nbsp;&amp;a&nbsp;是指针</span><span style="color: #008000; "><br /></span><span style="color: #000000; "><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 /></span></div><img src ="http://www.blogjava.net/ghost/aggbug/358796.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ghost/" target="_blank">xsong</a> 2011-09-16 15:04 <a href="http://www.blogjava.net/ghost/archive/2011/09/16/358796.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>libevent 构建简单的http服务器</title><link>http://www.blogjava.net/ghost/archive/2011/08/05/355868.html</link><dc:creator>xsong</dc:creator><author>xsong</author><pubDate>Fri, 05 Aug 2011 06:51:00 GMT</pubDate><guid>http://www.blogjava.net/ghost/archive/2011/08/05/355868.html</guid><wfw:comment>http://www.blogjava.net/ghost/comments/355868.html</wfw:comment><comments>http://www.blogjava.net/ghost/archive/2011/08/05/355868.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ghost/comments/commentRss/355868.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ghost/services/trackbacks/355868.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><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 />#include&nbsp;</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 />#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #0000FF; ">event</span><span style="color: #000000; ">.h</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">evhttp.h</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br /><br /></span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;generic_request_handler(</span><span style="color: #0000FF; ">struct</span><span style="color: #000000; ">&nbsp;evhttp_request&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">req,&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">arg)&nbsp;{<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">struct</span><span style="color: #000000; ">&nbsp;evbuffer&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">return_buffer</span><span style="color: #000000; ">=</span><span style="color: #000000; ">evbuffer_new();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;evbuffer_add_printf(return_buffer,</span><span style="color: #000000; ">"</span><span style="color: #000000; ">welcome<img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;evhttp_send_reply(req,HTTP_OK,</span><span style="color: #000000; ">"</span><span style="color: #000000; ">Client</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,return_buffer&nbsp;&nbsp;&nbsp;&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;evbuffer_free(return_buffer);<br />}<br /><br /></span><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; ">&nbsp;</span><span style="color: #000000; ">**</span><span style="color: #000000; ">argv)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">short</span><span style="color: #000000; ">&nbsp;http_port&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">8082</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">char</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">http_addr</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">127.0.0.1</span><span style="color: #000000; ">"</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">struct</span><span style="color: #000000; ">&nbsp;evhttp&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">http_serv</span><span style="color: #000000; ">=</span><span style="color: #000000; ">NULL;<br />&nbsp;&nbsp;&nbsp;&nbsp;event_init();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;http_serv</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;evhttp_start(http_addr,http_port);<br />&nbsp;&nbsp;&nbsp;&nbsp;evhttp_set_gencb(http_serv,generic_request_handler,NULL);<br />&nbsp;&nbsp;&nbsp;&nbsp;event_dispatch();<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 /></span></div><img src ="http://www.blogjava.net/ghost/aggbug/355868.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ghost/" target="_blank">xsong</a> 2011-08-05 14:51 <a href="http://www.blogjava.net/ghost/archive/2011/08/05/355868.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>c 字符转化数值</title><link>http://www.blogjava.net/ghost/archive/2011/05/30/351340.html</link><dc:creator>xsong</dc:creator><author>xsong</author><pubDate>Mon, 30 May 2011 07:13:00 GMT</pubDate><guid>http://www.blogjava.net/ghost/archive/2011/05/30/351340.html</guid><wfw:comment>http://www.blogjava.net/ghost/comments/351340.html</wfw:comment><comments>http://www.blogjava.net/ghost/archive/2011/05/30/351340.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ghost/comments/commentRss/351340.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ghost/services/trackbacks/351340.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp; c 提供了 atoi atof 等函数实现了字符串转化数值的函数。使用方法简单。<br />但是如果转化 "123ss"等字符串里包含非数值的字符串时，则会自动转化为 123，不会抛出异常。<br />想要验证 字符串是否是数值格式&nbsp; 可使用 <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: #000000;">strtol&nbsp;(__const&nbsp;</span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">__restrict&nbsp;__nptr,&nbsp;</span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">**</span><span style="color: #000000;">__restrict&nbsp;__endptr,&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;__base)</span></div>&nbsp;<span style="border-collapse: separate; color: #000000; font-family: 'AR PL UKai CN'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"><span style="font-family: 宋体; line-height: 21px; text-align: left; font-size: small;"><span style="line-height: 21px;">nptr</span>指向的字符串</span></span>，&nbsp; <div><span style="border-collapse: separate; color: #000000; font-family: 'AR PL UKai CN'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"><span style="font-family: verdana,sans-serif; font-size: 14px; line-height: 21px;"><span style="line-height: 21px;"><span style="line-height: 21px; font-size: small; font-family: 宋体;">strtol()</span></span><span style="line-height: 21px; font-size: small; font-family: 宋体;">函数检测到第一个非法字符时，立即停止检测，其后的所有字符都会被当作非法字符处理。合法字符串会被转换为<span style="line-height: 21px;">long int,&nbsp;</span>作为函数的返回值。非法字符串，即从第一个非法字符的地址，被赋给<span style="line-height: 21px;">*endptr</span>。<span style="line-height: 21px;">**endptr</span>是个双重指针，即指针的指针。<span style="line-height: 21px;">strtol()</span>函数就是通过它改变<span style="line-height: 21px;">*endptr</span>的值，即把第一个非法字符的地址传给<span style="line-height: 21px;">endptr</span>。</span></span></span></div><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: #000000;">&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">str1</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">1231</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">*</span><span style="color: #000000;">endptr1;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">str2</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">123sss</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">*</span><span style="color: #000000;">endptr2;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">atoi&nbsp;str2&nbsp;is&nbsp;%i\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,atoi(str1));<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i,j;</span><span style="color: #008000;">//</span><span style="color: #008000;">atoi(str);</span><span style="color: #008000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;i</span><span style="color: #000000;">=</span><span style="color: #000000;">strtol(str1,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">endptr1,</span><span style="color: #000000;">10</span><span style="color: #000000;">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(</span><span style="color: #000000;">*</span><span style="color: #000000;">endptr1</span><span style="color: #000000;">!=</span><span style="color: #000000;">NULL){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">endptr1&nbsp;is&nbsp;%s\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,endptr1);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">str1&nbsp;auto&nbsp;int&nbsp;%i\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,i);<br />&nbsp;&nbsp;&nbsp;&nbsp;j</span><span style="color: #000000;">=</span><span style="color: #000000;">strtol(str2,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">endptr2,</span><span style="color: #000000;">10</span><span style="color: #000000;">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(</span><span style="color: #000000;">*</span><span style="color: #000000;">endptr2</span><span style="color: #000000;">!=</span><span style="color: #000000;">NULL){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">endptr2&nbsp;is&nbsp;%s\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,endptr2);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">str2&nbsp;auto&nbsp;long&nbsp;int&nbsp;%i\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,j);<br /></span></div><br /><img src ="http://www.blogjava.net/ghost/aggbug/351340.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ghost/" target="_blank">xsong</a> 2011-05-30 15:13 <a href="http://www.blogjava.net/ghost/archive/2011/05/30/351340.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>解决 debian  flash 杂音</title><link>http://www.blogjava.net/ghost/archive/2011/05/26/351077.html</link><dc:creator>xsong</dc:creator><author>xsong</author><pubDate>Thu, 26 May 2011 05:37:00 GMT</pubDate><guid>http://www.blogjava.net/ghost/archive/2011/05/26/351077.html</guid><wfw:comment>http://www.blogjava.net/ghost/comments/351077.html</wfw:comment><comments>http://www.blogjava.net/ghost/archive/2011/05/26/351077.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ghost/comments/commentRss/351077.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ghost/services/trackbacks/351077.html</trackback:ping><description><![CDATA[<div>系统中的浏览器都是由在/usr/bin中的与浏览器同名的脚本文件启动的.你可以对其进行编辑加入环境变量进行连接库文件进行预载.对firefox浏览器,用sudo权限编辑/usr/bin/firefox,将<br />export LD_PRELOAD=/usr/lib/libc/memcpy-preload.so<span style="color: #FF0000">(不行就改为export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libc/memcpy-preload.so)</span>加入文件的第一行就可以了</div><br /><div>转自&nbsp; <a href="http://forum.ubuntu.org.cn/viewtopic.php?t=334336">http://forum.ubuntu.org.cn/viewtopic.php?t=334336</a></div><img src ="http://www.blogjava.net/ghost/aggbug/351077.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ghost/" target="_blank">xsong</a> 2011-05-26 13:37 <a href="http://www.blogjava.net/ghost/archive/2011/05/26/351077.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>c 字符串 处理</title><link>http://www.blogjava.net/ghost/archive/2011/05/18/350485.html</link><dc:creator>xsong</dc:creator><author>xsong</author><pubDate>Wed, 18 May 2011 07:38:00 GMT</pubDate><guid>http://www.blogjava.net/ghost/archive/2011/05/18/350485.html</guid><wfw:comment>http://www.blogjava.net/ghost/comments/350485.html</wfw:comment><comments>http://www.blogjava.net/ghost/archive/2011/05/18/350485.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ghost/comments/commentRss/350485.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ghost/services/trackbacks/350485.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: #008000;">/*</span><span style="color: #008000;"><br />&nbsp;============================================================================<br />&nbsp;Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;test.c<br />&nbsp;Author&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;xsong<br />&nbsp;Version&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:<br />&nbsp;Copyright&nbsp;&nbsp;&nbsp;:&nbsp;Your&nbsp;copyright&nbsp;notice<br />&nbsp;Description&nbsp;:&nbsp;Hello&nbsp;World&nbsp;in&nbsp;C,&nbsp;Ansi-style<br />&nbsp;============================================================================<br />&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br /><br />#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 />#include&nbsp;</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 />#include</span><span style="color: #000000;">&lt;</span><span style="color: #0000ff;">string</span><span style="color: #000000;">.h</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br /><br /></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;main(</span><span style="color: #0000ff;">void</span><span style="color: #000000;">)&nbsp;{<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;buffer[]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">buffer&nbsp;example</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;memset&nbsp;填充字符串</span><span style="color: #008000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">buffer&nbsp;size&nbsp;%i&nbsp;\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;</span><span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(buffer));<br />&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">before&nbsp;memsetd&nbsp;-&gt;&nbsp;%s&nbsp;\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;buffer);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;mpoint&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;memset(buffer,&nbsp;</span><span style="color: #000000;">'</span><span style="color: #000000;">*</span><span style="color: #000000;">'</span><span style="color: #000000;">,&nbsp;</span><span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(buffer));<br />&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">memset&nbsp;return&nbsp;point&nbsp;-&gt;&nbsp;%i&nbsp;\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;mpoint);<br />&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">after&nbsp;memsetd&nbsp;-&gt;&nbsp;%s&nbsp;\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;buffer);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">strlen&nbsp;取得字符串长度</span><span style="color: #008000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;buffer_length&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;strlen(buffer);<br />&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">buffer&nbsp;size&nbsp;-&gt;&nbsp;%i&nbsp;\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;buffer_length);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">字符串连接</span><span style="color: #008000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;d[</span><span style="color: #000000;">10</span><span style="color: #000000;">]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">foo</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;s[</span><span style="color: #000000;">10</span><span style="color: #000000;">]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">bar</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />&nbsp;&nbsp;&nbsp;&nbsp;strcat(d,&nbsp;s);<br />&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%s&nbsp;%s\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;d,&nbsp;s);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">字符串分割</span><span style="color: #008000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;str[]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">root:x::0:root:/root:/bin/bash:</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">token;<br />&nbsp;&nbsp;&nbsp;&nbsp;token&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;strtok(str,&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">:</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">do</span><span style="color: #000000;">&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%s&nbsp;\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;token);<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff;">while</span><span style="color: #000000;">&nbsp;((token&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;strtok(NULL,&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">:</span><span style="color: #000000;">"</span><span style="color: #000000;">))&nbsp;</span><span style="color: #000000;">!=</span><span style="color: #000000;">&nbsp;NULL);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;EXIT_SUCCESS;<br />}<br /><br /></span></div><img src ="http://www.blogjava.net/ghost/aggbug/350485.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ghost/" target="_blank">xsong</a> 2011-05-18 15:38 <a href="http://www.blogjava.net/ghost/archive/2011/05/18/350485.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>c  malloc freee</title><link>http://www.blogjava.net/ghost/archive/2011/05/16/350314.html</link><dc:creator>xsong</dc:creator><author>xsong</author><pubDate>Mon, 16 May 2011 05:42:00 GMT</pubDate><guid>http://www.blogjava.net/ghost/archive/2011/05/16/350314.html</guid><wfw:comment>http://www.blogjava.net/ghost/comments/350314.html</wfw:comment><comments>http://www.blogjava.net/ghost/archive/2011/05/16/350314.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ghost/comments/commentRss/350314.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ghost/services/trackbacks/350314.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: #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 />
#include&nbsp;</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 />
#include</span><span style="color: #000000;">&lt;</span><span style="color: #0000ff;">string</span><span style="color: #000000;">.h</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
<br />
typedef&nbsp;</span><span style="color: #0000ff;">struct</span><span style="color: #000000;">{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;number;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">msg;<br />
}&nbsp;unit_t;<br />
<br />
</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;main(</span><span style="color: #0000ff;">void</span><span style="color: #000000;">)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;使用&nbsp;malloc&nbsp;分配内存，&nbsp;使用free释放内存，并设置为NULL&nbsp;杜绝野指针</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;unit_t&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">p</span><span style="color: #000000;">=</span><span style="color: #000000;">malloc(</span><span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(unit_t));<br />
&nbsp;&nbsp;&nbsp;&nbsp;p</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">number</span><span style="color: #000000;">=</span><span style="color: #000000;">10</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;p</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">msg</span><span style="color: #000000;">=</span><span style="color: #000000;">malloc(</span><span style="color: #000000;">10</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;strcpy(p</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">msg,</span><span style="color: #000000;">"</span><span style="color: #000000;">hello</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">number&nbsp;is&nbsp;%i&nbsp;\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,p</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">number);<br />
&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">msg&nbsp;is&nbsp;%s&nbsp;\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,p</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">msg);<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">如果先free(p)，p成了野指针，就不能再通过p-&gt;msg访问内存</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;free(p</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">msg);<br />
&nbsp;&nbsp;&nbsp;&nbsp;free(p);<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">如果&nbsp;free(p)&nbsp;&nbsp;两次，&nbsp;则会引发系统错误，</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;p</span><span style="color: #000000;">=</span><span style="color: #000000;">NULL;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(p</span><span style="color: #000000;">==</span><span style="color: #000000;">NULL){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">p&nbsp;point&nbsp;is&nbsp;empty</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit(</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;EXIT_SUCCESS;<br />
}</span></div>
<img src ="http://www.blogjava.net/ghost/aggbug/350314.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ghost/" target="_blank">xsong</a> 2011-05-16 13:42 <a href="http://www.blogjava.net/ghost/archive/2011/05/16/350314.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>c 数组与指针</title><link>http://www.blogjava.net/ghost/archive/2011/05/13/350161.html</link><dc:creator>xsong</dc:creator><author>xsong</author><pubDate>Fri, 13 May 2011 03:57:00 GMT</pubDate><guid>http://www.blogjava.net/ghost/archive/2011/05/13/350161.html</guid><wfw:comment>http://www.blogjava.net/ghost/comments/350161.html</wfw:comment><comments>http://www.blogjava.net/ghost/archive/2011/05/13/350161.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ghost/comments/commentRss/350161.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ghost/services/trackbacks/350161.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: #008000;">/*</span><span style="color: #008000;">数组和指针<br />
*&nbsp;在函数原型中，如果参数是数组，则等价于参数是指针的形式，例如：<br />
void&nbsp;func(int&nbsp;a[10])<br />
{<br />
<img src="http://www.blogjava.net/Images/dot.gif" alt="" /><br />
}<br />
等价于：<br />
<br />
void&nbsp;func(int&nbsp;*a)<br />
{<br />
<img src="http://www.blogjava.net/Images/dot.gif" alt="" /><br />
}<br />
第一种形式方括号中的数字可以不写，仍然是等价的：<br />
<br />
void&nbsp;func(int&nbsp;a[])<br />
{<br />
<img src="http://www.blogjava.net/Images/dot.gif" alt="" width="16" height="20" /><br />
}<br />
</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
<br />
</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;a[]</span><span style="color: #000000;">=</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;">,</span><span style="color: #000000;">7</span><span style="color: #000000;">,</span><span style="color: #000000;">8</span><span style="color: #000000;">};<br />
</span><span style="color: #0000ff;">// int *p=&amp;a[0]; 一般简写为<br />int</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">p</span><span style="color: #000000;">=</span><span style="color: #000000;">a;<br />
printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">p&nbsp;address&nbsp;%p&nbsp;\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,p);<br />
printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">p&nbsp;value&nbsp;%i&nbsp;\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">p);<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">指针自加&nbsp;p++&nbsp;&nbsp;p=a[1]</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">p</span><span style="color: #000000;">++</span><span style="color: #000000;">;<br />
printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">p++&nbsp;value&nbsp;%i&nbsp;\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">*</span><span style="color: #000000;">p);<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;指针的比较运算，比较的是两个指针的地址，&nbsp;但只有一个数组内的指针比较才有意义。<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">如果为true&nbsp;&nbsp;输出&nbsp;1,&nbsp;如果为&nbsp;false&nbsp;输出0&nbsp;&nbsp;,c&nbsp;语言中没有&nbsp;boolean&nbsp;类型</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;complete&nbsp;p&nbsp;%i&nbsp;\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;p</span><span style="color: #000000;">+</span><span style="color: #000000;">2</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">p);<br />
printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;complete&nbsp;p&nbsp;%i&nbsp;\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;p</span><span style="color: #000000;">+</span><span style="color: #000000;">2</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">p);<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">指针相减表示两个指针之间相差的元素个数,&nbsp;C语言也规定两个指针不能相加</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;p-1&nbsp;value&nbsp;%i</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">*</span><span style="color: #000000;">(p</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">));<br />
</span></div><img src ="http://www.blogjava.net/ghost/aggbug/350161.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ghost/" target="_blank">xsong</a> 2011-05-13 11:57 <a href="http://www.blogjava.net/ghost/archive/2011/05/13/350161.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>c 指针与结构体</title><link>http://www.blogjava.net/ghost/archive/2011/05/13/350162.html</link><dc:creator>xsong</dc:creator><author>xsong</author><pubDate>Fri, 13 May 2011 03:57:00 GMT</pubDate><guid>http://www.blogjava.net/ghost/archive/2011/05/13/350162.html</guid><wfw:comment>http://www.blogjava.net/ghost/comments/350162.html</wfw:comment><comments>http://www.blogjava.net/ghost/archive/2011/05/13/350162.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ghost/comments/commentRss/350162.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ghost/services/trackbacks/350162.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: #008000;">//</span><span style="color: #008000;">使用指针访问结构体</span><span style="color: #008000;"><br />
</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">struct</span><span style="color: #000000;">&nbsp;unit{<br />
</span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;c;<br />
</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;num;<br />
};<br />
<br />
&nbsp;</span><span style="color: #0000ff;">struct</span><span style="color: #000000;">&nbsp;unit&nbsp;u;<br />
</span><span style="color: #0000ff;">struct</span><span style="color: #000000;">&nbsp;unit&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">p</span><span style="color: #000000;">=&amp;</span><span style="color: #000000;">u;<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">可使用&nbsp;(*p).c=&#8216;a'&nbsp;&nbsp;通过指针访问结构体里的数据，&nbsp;c提供了&nbsp;-&gt;运算符&nbsp;简化指针对结构体的访问&nbsp;p-&gt;c='c'</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">(</span><span style="color: #000000;">*</span><span style="color: #000000;">p).c</span><span style="color: #000000;">=</span><span style="color: #000000;">'</span><span style="color: #000000;">a</span><span style="color: #000000;">'</span><span style="color: #000000;">;<br />
(</span><span style="color: #000000;">*</span><span style="color: #000000;">p).num</span><span style="color: #000000;">=</span><span style="color: #000000;">2</span><span style="color: #000000;">;<br />
p</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">c</span><span style="color: #000000;">=</span><span style="color: #000000;">'</span><span style="color: #000000;">c</span><span style="color: #000000;">'</span><span style="color: #000000;">;<br />
p</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">num</span><span style="color: #000000;">=</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br />
<br />
printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">p-&gt;c&nbsp;is&nbsp;%c&nbsp;\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,p</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">c);<br />
printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">p-&gt;i&nbsp;is&nbsp;%i&nbsp;\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,p</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">num);<br />
</span></div>
<img src ="http://www.blogjava.net/ghost/aggbug/350162.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ghost/" target="_blank">xsong</a> 2011-05-13 11:57 <a href="http://www.blogjava.net/ghost/archive/2011/05/13/350162.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>c 结构体</title><link>http://www.blogjava.net/ghost/archive/2011/05/13/350159.html</link><dc:creator>xsong</dc:creator><author>xsong</author><pubDate>Fri, 13 May 2011 03:55:00 GMT</pubDate><guid>http://www.blogjava.net/ghost/archive/2011/05/13/350159.html</guid><wfw:comment>http://www.blogjava.net/ghost/comments/350159.html</wfw:comment><comments>http://www.blogjava.net/ghost/archive/2011/05/13/350159.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ghost/comments/commentRss/350159.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ghost/services/trackbacks/350159.html</trackback:ping><description><![CDATA[结构体<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: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;"><br />
<br />
<br />
</span><span style="color: #0000ff;">struct</span><span style="color: #000000;">&nbsp;Complex{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">double</span><span style="color: #000000;">&nbsp;x,y;<br />
}&nbsp;z1;<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">或者</span><span style="color: #008000;"><br />
</span><span style="color: #0000ff;">struct</span><span style="color: #000000;">&nbsp;Complex{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">double</span><span style="color: #000000;">&nbsp;x,y;<br />
};<br />
</span><span style="color: #0000ff;">struct</span><span style="color: #000000;">&nbsp;Complex&nbsp;z1;</span></div>
<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: #000000;"><br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">声明时初始化</span><span style="color: #008000;"><br />
</span><span style="color: #0000ff;">struct</span><span style="color: #000000;">&nbsp;Stu{<br />
</span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;name;<br />
}s1</span><span style="color: #000000;">=</span><span style="color: #000000;">{</span><span style="color: #000000;">'</span><span style="color: #000000;">s</span><span style="color: #000000;">'</span><span style="color: #000000;">};<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">先声明，后初始化</span><span style="color: #008000;"><br />
</span><span style="color: #0000ff;">struct</span><span style="color: #000000;">&nbsp;Stu{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;name;<br />
};<br />
</span><span style="color: #0000ff;">struct</span><span style="color: #000000;">&nbsp;Stu&nbsp;s1</span><span style="color: #000000;">=</span><span style="color: #000000;">{s};<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">结构体赋值&nbsp;，copy&nbsp;s1的内容给s2</span><span style="color: #008000;"><br />
</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">struct</span><span style="color: #000000;">&nbsp;Stu&nbsp;s2</span><span style="color: #000000;">=</span><span style="color: #000000;">s1;<br />
s2.name</span><span style="color: #000000;">=</span><span style="color: #000000;">'</span><span style="color: #000000;">m</span><span style="color: #000000;">'</span><span style="color: #000000;"><br />
<br />
printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">s1.name&nbsp;%c</span><span style="color: #000000;">"</span><span style="color: #000000;">,s1.name);&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;print&nbsp;s</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">s2.name&nbsp;%c</span><span style="color: #000000;">"</span><span style="color: #000000;">,s2.name);&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">print&nbsp;m<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">结构体嵌套</span><span style="color: #008000;"><br />
</span><span style="color: #0000ff;">struct</span><span style="color: #000000;">&nbsp;dog{<br />
</span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;run;<br />
};<br />
</span><span style="color: #0000ff;">struct</span><span style="color: #000000;">&nbsp;cat{<br />
</span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;run;<br />
};<br />
</span><span style="color: #0000ff;">struct</span><span style="color: #000000;">&nbsp;animal{<br />
</span><span style="color: #0000ff;">struct</span><span style="color: #000000;">&nbsp;dog&nbsp;dd;<br />
</span><span style="color: #0000ff;">struct</span><span style="color: #000000;">&nbsp;cat&nbsp;cc;<br />
};<br />
<br />
<br />
&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">嵌套的结构体分别初始化</span><span style="color: #008000;"><br />
</span><span style="color: #0000ff;">struct</span><span style="color: #000000;">&nbsp;dog&nbsp;dd</span><span style="color: #000000;">=</span><span style="color: #000000;">{</span><span style="color: #000000;">'</span><span style="color: #000000;">d</span><span style="color: #000000;">'</span><span style="color: #000000;">};<br />
</span><span style="color: #0000ff;">struct</span><span style="color: #000000;">&nbsp;cat&nbsp;cc</span><span style="color: #000000;">=</span><span style="color: #000000;">{</span><span style="color: #000000;">'</span><span style="color: #000000;">c</span><span style="color: #000000;">'</span><span style="color: #000000;">};<br />
</span><span style="color: #0000ff;">struct</span><span style="color: #000000;">&nbsp;animal&nbsp;a1</span><span style="color: #000000;">=</span><span style="color: #000000;">{dd&nbsp;,cc};<br />
printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">dog-dd&nbsp;run&nbsp;is&nbsp;%c&nbsp;\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,a1.dd.run);<br />
printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">cat-cc&nbsp;run&nbsp;is&nbsp;%c</span><span style="color: #000000;">"</span><span style="color: #000000;">,a1.cc.run);<br />
<br />
</span></div>
<br />
<br />
<img src ="http://www.blogjava.net/ghost/aggbug/350159.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ghost/" target="_blank">xsong</a> 2011-05-13 11:55 <a href="http://www.blogjava.net/ghost/archive/2011/05/13/350159.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>c 字符串</title><link>http://www.blogjava.net/ghost/archive/2011/05/13/350160.html</link><dc:creator>xsong</dc:creator><author>xsong</author><pubDate>Fri, 13 May 2011 03:55:00 GMT</pubDate><guid>http://www.blogjava.net/ghost/archive/2011/05/13/350160.html</guid><wfw:comment>http://www.blogjava.net/ghost/comments/350160.html</wfw:comment><comments>http://www.blogjava.net/ghost/archive/2011/05/13/350160.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ghost/comments/commentRss/350160.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ghost/services/trackbacks/350160.html</trackback:ping><description><![CDATA[<div>
声明一个字符串，其实也就是一个char的数组</div>
<div>char str[20] = "Hello, world";</div>
<div>
printf("str is %s",str);</div>
<div>
如果定义数组的大小
小于字符串字面值&#8220;Hello
,world";&nbsp;则编译器会发出警告信息。所以最好定义不定长度的数组</div>
<div>char str[ ]="hello, world";</div>
<img src ="http://www.blogjava.net/ghost/aggbug/350160.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ghost/" target="_blank">xsong</a> 2011-05-13 11:55 <a href="http://www.blogjava.net/ghost/archive/2011/05/13/350160.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>