﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-tiger7-文章分类-C++ Primer</title><link>http://www.cppblog.com/tiger7/category/19396.html</link><description /><language>zh-cn</language><lastBuildDate>Sat, 18 Aug 2012 12:34:26 GMT</lastBuildDate><pubDate>Sat, 18 Aug 2012 12:34:26 GMT</pubDate><ttl>60</ttl><item><title>C++ Primer 学习笔记（八） ---- 第四章 数组和指针（3）</title><link>http://www.cppblog.com/tiger7/articles/185945.html</link><dc:creator>tiger7</dc:creator><author>tiger7</author><pubDate>Mon, 06 Aug 2012 13:48:00 GMT</pubDate><guid>http://www.cppblog.com/tiger7/articles/185945.html</guid><wfw:comment>http://www.cppblog.com/tiger7/comments/185945.html</wfw:comment><comments>http://www.cppblog.com/tiger7/articles/185945.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tiger7/comments/commentRss/185945.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tiger7/services/trackbacks/185945.html</trackback:ping><description><![CDATA[<blockquote style="margin-right: 0px" dir="ltr">
<div><strong>一、知识点<br /></strong><span style="color: ">1、数组</span><span style="color: #000000"><br /></span><span style="color: #000000">2、指针的引入</span><br /><span style="color: #ff0000">3、C风格字符串</span><br /><span style="color: #ff0000">4、多维数组</span><br /><br /><span style="color: "><strong>二、要点&nbsp;</strong></span><span style="color: #ff0000"><strong><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: ">3</span><span style="color: ">、C</span><span style="color: ">风格字<span style="color: ">符串<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;（1）、C风格字符串，是以空格null结束的字符</span><span style="color: #0000ff">数组。</span><span style="color: ">下面是操作C风格字符串的标准库函数：</span><span style="color: ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<blockquote>
<table style="border-bottom: medium none; border-left: medium none; width: 678px; border-collapse: collapse; height: 221px; border-top: medium none; border-right: medium none" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="border-bottom: black 1pt solid; border-left: #ffffff; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; padding-right: 5.4pt; border-top: black 1pt solid; border-right: #ffffff; padding-top: 0cm" valign="top" colspan="2">
<p align="center"><strong><span style="font-family: 宋体; color: #333333">&nbsp;&nbsp;操作</span></strong><strong><span style="font-family: 'Verdana','sans-serif'; color: #333333">C</span></strong><strong><span style="font-family: 宋体; color: #333333">风格字符串的标准库函数</span><span style="color: black"></span></strong></p></td></tr>
<tr>
<td style="border-bottom: #ffffff; border-left: #ffffff; padding-bottom: 0cm; padding-left: 5.4pt; width: 104.65pt; padding-right: 5.4pt;background: silver; border-top: #ffffff; border-right: #ffffff; padding-top: 0cm" valign="top" width="140">
<p><strong><span style="color: black">strlen(s)</span></strong></p></td>
<td style="border-bottom: #ffffff; border-left: #ffffff; padding-bottom: 0cm; padding-left: 5.4pt; padding-right: 5.4pt;background: silver; border-top: #ffffff; border-right: #ffffff; padding-top: 0cm" valign="top">
<p><span style="font-family: 宋体; color: black">返回</span><span style="color: black">s</span><span style="font-family: 宋体; color: black">的长度，不包括结束符</span><span style="color: black">null</span></p></td></tr>
<tr>
<td style="border-bottom: #ffffff; border-left: #ffffff; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 104.65pt; padding-right: 5.4pt; border-top: #ffffff; border-right: #ffffff; padding-top: 0cm" valign="top" width="140">
<p><strong><span style="color: black">strcmp(s1,s2)</span></strong></p></td>
<td style="border-bottom: #ffffff; border-left: #ffffff; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; padding-right: 5.4pt; border-top: #ffffff; border-right: #ffffff; padding-top: 0cm" valign="top">
<p><span style="font-family: 宋体; color: black">比较</span><span style="color: black">2</span><span style="font-family: 宋体; color: black">个字符串，相同返回</span><span style="color: black">0</span><span style="font-family: 宋体; color: black">，</span><span style="color: black">s1&gt;s2</span><span style="font-family: 宋体; color: black">返回正数，</span><span style="color: black">s1&lt;s2</span><span style="font-family: 宋体; color: black">返回负数</span></p></td></tr>
<tr>
<td style="border-bottom: #ffffff; border-left: #ffffff; padding-bottom: 0cm; padding-left: 5.4pt; width: 104.65pt; padding-right: 5.4pt;background: silver; border-top: #ffffff; border-right: #ffffff; padding-top: 0cm" valign="top" width="140">
<p><strong><span style="color: black">strcat(s1,s2)</span></strong></p></td>
<td style="border-bottom: #ffffff; border-left: #ffffff; padding-bottom: 0cm; padding-left: 5.4pt; width: 524px; padding-right: 5.4pt;background: silver; height: 30px; border-top: #ffffff; border-right: #ffffff; padding-top: 0cm" valign="top">
<p><span style="font-family: 宋体; color: black">将字符</span><span style="color: black">s2</span><span style="font-family: 宋体; color: black">连接到</span><span style="color: black">s1</span><span style="font-family: 宋体; color: black">后，并返回</span><span style="color: black">s1</span></p></td></tr>
<tr>
<td style="border-bottom: #ffffff; border-left: #ffffff; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 104.65pt; padding-right: 5.4pt; border-top: #ffffff; border-right: #ffffff; padding-top: 0cm" valign="top" width="140">
<p><strong><span style="color: black">strcpy(s1,s2)</span></strong></p></td>
<td style="border-bottom: #ffffff; border-left: #ffffff; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; padding-right: 5.4pt; border-top: #ffffff; border-right: #ffffff; padding-top: 0cm" valign="top">
<p><span style="font-family: 宋体; color: black">将</span><span style="color: black">s2</span><span style="font-family: 宋体; color: black">复制给</span><span style="color: black">s1</span><span style="font-family: 宋体; color: black">，并返回</span><span style="color: black">s1</span></p></td></tr>
<tr>
<td style="border-bottom: #ffffff; border-left: #ffffff; padding-bottom: 0cm; padding-left: 5.4pt; width: 104.65pt; padding-right: 5.4pt;background: silver; border-top: #ffffff; border-right: #ffffff; padding-top: 0cm" valign="top" width="140">
<p><strong><span style="color: black">strncat(s1,s2)</span></strong></p></td>
<td style="border-bottom: #ffffff; border-left: #ffffff; padding-bottom: 0cm; padding-left: 5.4pt; padding-right: 5.4pt;background: silver; border-top: #ffffff; border-right: #ffffff; padding-top: 0cm" valign="top">
<p><span style="font-family: 宋体; color: black">将</span><span style="color: black">s2</span><span style="font-family: 宋体; color: black">的前</span><span style="color: black">n</span><span style="font-family: 宋体; color: black">个字符连接到</span><span style="color: black">s1</span><span style="font-family: 宋体; color: black">后，并返回</span><span style="color: black">s1</span></p></td></tr>
<tr>
<td style="border-bottom: black 1pt solid; border-left: #ffffff; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 104.65pt; padding-right: 5.4pt; border-top: #ffffff; border-right: #ffffff; padding-top: 0cm" valign="top" width="140">
<p><strong><span style="color: black">strncpy(s1,s2)</span></strong></p></td>
<td style="border-bottom: black 1pt solid; border-left: #ffffff; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; padding-right: 5.4pt; border-top: #ffffff; border-right: #ffffff; padding-top: 0cm" valign="top">
<p><span style="font-family: 宋体; color: black">将</span><span style="color: black">s2</span><span style="font-family: 宋体; color: black">的前</span><span style="color: black">n</span><span style="font-family: 宋体; color: black">个字符复制给</span><span style="color: black">s1</span><span style="font-family: 宋体; color: black">，并返回</span><span style="color: black">s1</span></p></td></tr></tbody></table></blockquote>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strncat和strncoy是比较安全的函数，推荐使用。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;（2）、动态数组<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;const对象的数组，在定义时必须提供初始化：<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #008000">//</span><span style="color: #008000">&nbsp;错误：没有提供初始化</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">const</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">pci_bad&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">const</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">[</span><span style="color: #000000">100</span><span style="color: #000000">];<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;正确：明确调用构造函数初始化</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">const</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">pci_ok&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">const</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">[</span><span style="color: #000000">100</span><span style="color: #000000">]();<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;正确：使用默认的构造函数初始化（这种情况下，该类型必须提供默认构造函数）</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">const</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">pcs&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">const</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">[</span><span style="color: #000000">100</span><span style="color: #000000">];</span></div><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4、多维数组<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;用typedef简化指向多维数组的指针： 
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;ia[</span><span style="color: #000000">3</span><span style="color: #000000">][</span><span style="color: #000000">4</span><span style="color: #000000">];<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;(</span><span style="color: #000000">*</span><span style="color: #000000">ip)[</span><span style="color: #000000">4</span><span style="color: #000000">]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;ia;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;一个指向数组的指针，这个数组包括4个元素</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">ip&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">&amp;</span><span style="color: #000000">ia[</span><span style="color: #000000">2</span><span style="color: #000000">];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;指向的数组是从ia的最后一排数组</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />typedef&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;int_array[</span><span style="color: #000000">4</span><span style="color: #000000">];&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;包含4个元素的int数组</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">int_array&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">ipp&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;ia;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;等价于int&nbsp;(*ip)[4]&nbsp;=&nbsp;ia;</span></div><br /><br /></span></div></blockquote><span style="color: "><br /></span><span style="color: #ff0000"><br /><br /></span></span><img src ="http://www.cppblog.com/tiger7/aggbug/185945.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tiger7/" target="_blank">tiger7</a> 2012-08-06 21:48 <a href="http://www.cppblog.com/tiger7/articles/185945.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C++ Primer 学习笔记（七） ---- 第四章 数组和指针（2）</title><link>http://www.cppblog.com/tiger7/articles/185789.html</link><dc:creator>tiger7</dc:creator><author>tiger7</author><pubDate>Wed, 01 Aug 2012 14:42:00 GMT</pubDate><guid>http://www.cppblog.com/tiger7/articles/185789.html</guid><wfw:comment>http://www.cppblog.com/tiger7/comments/185789.html</wfw:comment><comments>http://www.cppblog.com/tiger7/articles/185789.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tiger7/comments/commentRss/185789.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tiger7/services/trackbacks/185789.html</trackback:ping><description><![CDATA[<blockquote style="margin-right: 0px" dir="ltr">
<p><strong>一、知识点<br /></strong><span style="color: ">1、数组</span><span style="color: #000000"><br /></span><span style="color: red">2、指针的引入</span><br /><span style="color: ">3、C风格字符串</span><br /><span style="color: ">4、多维数组<br /><br /><span style="color: #ff0000"><strong style="color: #000000">二、要点<br /></strong></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2、指针的引入<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;（1）、指针初始化和赋值操作的约束：<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;不能把int型变量赋给指针，但是可以吧数值0或在编译时可获得0值的const量赋给指针：</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;ival;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;zero&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">const</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;c_ival&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">pi&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;ival;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;错误：</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">pi&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;zero;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;错误：不能使用int直接赋值，可以用&amp;zero</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">pi&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;c_ival;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;正确</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">pi&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;正确</span></div>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void*指针：可以保存任何类型对象的指针；但是不允许使用void*指针操作它所指向的对象。<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;（2）、指针和引用<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;引用总是指向某个对象，定义引用时没有初始化是错误的；指针定义时可以不用初始化<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;给引用赋值修改的是该引用所关联的对象的值；指针就修改了指针的值</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;ival&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1024</span><span style="color: #000000">,&nbsp;ival2&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">2048</span><span style="color: #000000">;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">pi&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">&amp;</span><span style="color: #000000">ival,&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">pi2&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">&amp;</span><span style="color: #000000">ival2;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />pi&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;pi2;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;这里就修改pi指向的对象是pi2，而不在是pi了。</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">&amp;</span><span style="color: #000000">ri&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;ival,&nbsp;</span><span style="color: #000000">&amp;</span><span style="color: #000000">ri2&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;ival2;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />ri&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;ri2;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;这里修改的就是ival的值了，使ival的值为2048</span></div>
<p><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;（3）、指针的操作<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ptrdiff_t：表示2个指针减法操作的结果；<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ptrdiff_t和size_t的区别：size_t是unsigned类型，ptrdiff_t是signed类型的。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C++允许计算数组对象的超出末端的地址，但是不允许对改地址进行解引用。<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #ff0000">（4）、指针和const</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;【1】、指向const对象的指针：<span style="color: #ff0000">const double&nbsp;*cptr</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C++强制要求指向const对象的指针也必须具有const特性，即把一个const对象的地址赋给一个普通的、非cosnt对象的指针会导致编译错误；<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;const限定了cptr指针所指的对象是const，而不是cptr本身，即可以给cptr重新赋值，但是不能通过cptr修改其指对象的值；<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;不能使用void*指针保存const对象的地址，必须用const void*；<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;允许把非const对象的地址赋值给指向const对象的指针，但是反过来不行（即第一点说的）；但这时还是不能通过指针修改其指对象的值。</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">double</span><span style="color: #000000">&nbsp;dval&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">3.14</span><span style="color: #000000">;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">const</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">double</span><span style="color: #000000">&nbsp;pi&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">3.14</span><span style="color: #000000">;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">double</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">pi&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">&amp;</span><span style="color: #000000">pi;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;错误：不能把const对象赋给非const指针</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">const</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">double</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">cptr&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">&amp;</span><span style="color: #000000">pi;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;正确</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">*</span><span style="color: #000000">cptr&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">3.1415</span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;错误：不能通过cosnt指针修改所指对象的值</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />cptr&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">&amp;</span><span style="color: #000000">dval;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;正确：可以用非const对象给const指针赋值</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">*</span><span style="color: #000000">cptr&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">3.1415</span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;错误：虽然这时指向了非const对象，但还是不能这样修改对象的值</span></div>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;【2】、const指针：<span style="color: #ff0000">double *const cptr</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这个指针就是说明指针本身是不能修改的，即它不能使const指针再指向其他对象；正因为这样，所以const指针必须在定义时初始化（和const变量一样）。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;【3】、指向const对象的const指针：<span style="color: #ff0000">const double *const pi_ptr</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这个指针即不能修改它指向对象的值，也不能修改该指针的指向（即它的地址）。<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;（5）、指针和typedef<br /></p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">typedef&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">pstring;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">const</span><span style="color: #000000">&nbsp;pstring&nbsp;cstr;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;声明const&nbsp;pstring时，const修饰的是pstring的类型，而pstring这是一个指针，所以这里cstr是一个const的指针，指向string，等价于下面：</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #0000ff">const</span><span style="color: #000000">&nbsp;cstr;</span></div>
<p><br /></span>&nbsp;</p></blockquote><img src ="http://www.cppblog.com/tiger7/aggbug/185789.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tiger7/" target="_blank">tiger7</a> 2012-08-01 22:42 <a href="http://www.cppblog.com/tiger7/articles/185789.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C++ Primer 学习笔记（六） ---- 第四章 数组和指针（1）</title><link>http://www.cppblog.com/tiger7/articles/185788.html</link><dc:creator>tiger7</dc:creator><author>tiger7</author><pubDate>Tue, 31 Jul 2012 14:07:00 GMT</pubDate><guid>http://www.cppblog.com/tiger7/articles/185788.html</guid><wfw:comment>http://www.cppblog.com/tiger7/comments/185788.html</wfw:comment><comments>http://www.cppblog.com/tiger7/articles/185788.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tiger7/comments/commentRss/185788.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tiger7/services/trackbacks/185788.html</trackback:ping><description><![CDATA[<blockquote style="margin-right: 0px" dir="ltr">
<p><strong>一、知识点<br /></strong><span style="color: #ff0000">1、数组</span><span style="color: #000000"><br /></span><span style="color: #000000">2、指针的引入</span><br /><span style="color: ">3、C风格字符串</span><br /><span style="color: ">4、多维数组</span><br /><br /><span style="color: #ff0000"><strong style="color: #000000">二、要点<br /></strong></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1、数组<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;（1）、数组的定义和初始化<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;数组定义时，维数必须遵守如下规则：<span style="color: #ff0000">必须用大于等于1的常量表达式。</span><span style="color: ">非const变量及要到运行阶段才知道其值的const变量不能用于维数。<br /></p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;staff_size&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">27</span><span style="color: #000000">;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">const</span><span style="color: #000000">&nbsp;unsigned&nbsp;sz&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;get_size();<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">double</span><span style="color: #000000">&nbsp;salaries[staff_size];&nbsp;&nbsp;&nbsp; </span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;错误：不是const变量</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;vals[sz];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;错误：到运行是才知道</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;test_scores[get_size()];&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;错误：不是const表达式</span></div>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;数组初始化时，用{}表示时，如果是类类型的，没有默认构造函数，则必须提供显示的初始化。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;使用一组字符字面值初始化字符数组时，一定要添加字符串的空字符，不然将导致编译错误，如下：</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img id="Codehighlighter1_23_43_Open_Image" onclick="this.style.display='none'; Codehighlighter1_23_43_Open_Text.style.display='none'; Codehighlighter1_23_43_Closed_Image.style.display='inline'; Codehighlighter1_23_43_Closed_Text.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_23_43_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_23_43_Closed_Text.style.display='none'; Codehighlighter1_23_43_Open_Image.style.display='inline'; Codehighlighter1_23_43_Open_Text.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif"><span style="color: #0000ff">const</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">char</span><span style="color: #000000">&nbsp;cArr[][</span><span style="color: #000000">3</span><span style="color: #000000">]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_23_43_Closed_Text"><img src="http://www.cppblog.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_23_43_Open_Text"><span style="color: #000000">{</span><span style="color: #000000">"</span><span style="color: #000000">abc</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">cde</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">edf</span><span style="color: #000000">"</span><span style="color: #000000">}</span></span><span style="color: #000000">;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;错误：应该是4。</span></div>
<p><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;（2）、数组操作<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;用小标访问数组元素。数组下标的正确类型是size_t（同bitset的count()成员函数返回类型一致）。<br /></p></blockquote></span><img src ="http://www.cppblog.com/tiger7/aggbug/185788.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tiger7/" target="_blank">tiger7</a> 2012-07-31 22:07 <a href="http://www.cppblog.com/tiger7/articles/185788.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C++ Primer 学习笔记（五） ---- 第三章 标准库类型（2）</title><link>http://www.cppblog.com/tiger7/articles/175807.html</link><dc:creator>tiger7</dc:creator><author>tiger7</author><pubDate>Sat, 09 Jun 2012 13:10:00 GMT</pubDate><guid>http://www.cppblog.com/tiger7/articles/175807.html</guid><wfw:comment>http://www.cppblog.com/tiger7/comments/175807.html</wfw:comment><comments>http://www.cppblog.com/tiger7/articles/175807.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tiger7/comments/commentRss/175807.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tiger7/services/trackbacks/175807.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 一、知识点1、命名空间的using声明2、标准库string类型3、标准库vector类型4、迭代器简介5、标准库bitset类型二、要点&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3、标准库vector类型&nbsp;初始化vector对象的方式vector&lt;T&gt; v1v1保存T类型的对象。采用T的默认构造函...&nbsp;&nbsp;<a href='http://www.cppblog.com/tiger7/articles/175807.html'>阅读全文</a><img src ="http://www.cppblog.com/tiger7/aggbug/175807.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tiger7/" target="_blank">tiger7</a> 2012-06-09 21:10 <a href="http://www.cppblog.com/tiger7/articles/175807.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C++ Primer 学习笔记（四） ---- 第三章 标准库类型（1）</title><link>http://www.cppblog.com/tiger7/articles/151575.html</link><dc:creator>tiger7</dc:creator><author>tiger7</author><pubDate>Tue, 22 May 2012 13:57:00 GMT</pubDate><guid>http://www.cppblog.com/tiger7/articles/151575.html</guid><wfw:comment>http://www.cppblog.com/tiger7/comments/151575.html</wfw:comment><comments>http://www.cppblog.com/tiger7/articles/151575.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tiger7/comments/commentRss/151575.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tiger7/services/trackbacks/151575.html</trackback:ping><description><![CDATA[<blockquote>
<p><strong>一、知识点<br /></strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #ff0000"> 1、命名空间的using声明</span><br /><span style="color: #ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2、标准库string类型</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3、标准库vector类型<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4、迭代器简介<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5、标准库bitset类型<br /><br /><span style="color: #ff0000"><strong style="color: #000000">二、要点</strong></span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1、命名空间的using声明<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;使用using声明可以在不需要加前缀namespace_name：：的情况下访问命名空间中的名字，格式如：<span style="color: #0000ff">using namespace::name;</span><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2、标准库string类型<br /></p>
<blockquote>
<table style="border-bottom: medium none; border-left: medium none; border-collapse: collapse; border-top: medium none; border-right: medium none" border="1" rules="groups" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; padding-right: 5.4pt; border-top: black 1pt solid; border-right: medium none; padding-top: 0cm" valign="top" colspan="2">
<p align="center"><strong><span style="color: black">string</span></strong><strong><span style="font-family: 宋体; color: black">对象初始化方式</span><span style="color: black"></span></strong></p></td></tr>
<tr>
<td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 213.05pt; padding-right: 5.4pt;background: silver; border-top: medium none; border-right: medium none; padding-top: 0cm" valign="top" width="284">
<p><strong><span style="color: black">string s1;</span></strong></p></td>
<td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; padding-right: 5.4pt;background: silver; border-top: medium none; border-right: medium none; padding-top: 0cm" valign="top">
<p><span style="font-family: 宋体; color: #0000ff">默认构造函数，</span><span style="color: #0000ff">s1</span><span style="font-family: 宋体; color: #0000ff">为空串</span></p></td></tr>
<tr>
<td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 213.05pt; padding-right: 5.4pt; border-top: medium none; border-right: medium none; padding-top: 0cm" valign="top" width="284">
<p><strong><span style="color: black">string s2(s1)</span></strong></p></td>
<td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 296px; padding-right: 5.4pt; height: 28px; border-top: medium none; border-right: medium none; padding-top: 0cm" valign="top">
<p><span style="font-family: 宋体; color: #0000ff">将</span><span style="color: #0000ff">s2</span><span style="font-family: 宋体; color: #0000ff">初始化为</span><span style="color: #0000ff">s1</span><span style="font-family: 宋体; color: #0000ff">的一个副本</span></p></td></tr>
<tr>
<td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 213.05pt; padding-right: 5.4pt;background: silver; border-top: medium none; border-right: medium none; padding-top: 0cm" valign="top" width="284">
<p><strong><span style="color: black">string s3(&#8220;Value&#8221;);</span></strong></p></td>
<td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; padding-right: 5.4pt;background: silver; border-top: medium none; border-right: medium none; padding-top: 0cm" valign="top">
<p><span style="font-family: 宋体; color: #0000ff">将</span><span style="color: #0000ff">s3</span><span style="font-family: 宋体; color: #0000ff">初始化为一个字符串字面值的副本</span></p></td></tr>
<tr>
<td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 213.05pt; padding-right: 5.4pt; border-top: medium none; border-right: medium none; padding-top: 0cm" valign="top" width="284">
<p><strong><span style="color: black">string s4(n, &#8216;c&#8217;);</span></strong></p></td>
<td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: medium none; padding-top: 0cm" valign="top">
<p><span style="font-family: 宋体; color: #0000ff">将</span><span style="color: #0000ff">s4</span><span style="font-family: 宋体; color: #0000ff">初始化为字符</span><span style="color: #0000ff">&#8216;c&#8217;</span><span style="font-family: 宋体; color: #0000ff">的</span><span style="color: #0000ff">n</span><span style="font-family: 宋体; color: #0000ff">个副本</span></p></td></tr></tbody></table></blockquote>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; （1）、string类型的输入操作符和getline函数<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string类型的输入操作符：读取并忽略开头所有的空白字符（空格、换行符、制表符）；读取字符直到再次遇到空白字符，读取结束。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getline函数：包含2个参数，输入流对象和string对象；读取内容直到碰到换行符，但并不包括换行符（它不忽略开头的换行符，如果有，那么这次的读取内容为空）<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; （2）、string::size_type类型<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string::size_type是一种与机器无关的、无符号的整型类型（int，long都可能），它可以保存任意string对象的长度。<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; （3）、与字符串字面值连接的注意点<br /></p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 90.94%; padding-right: 5px; height: 141px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;s1&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">hello</span><span style="color: #000000">"</span><span style="color: #000000">;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;s2&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">world</span><span style="color: #000000">"</span><span style="color: #000000">;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;s3&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;s1&nbsp;</span><span style="color: #000000">+</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">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;ok</span><span style="color: #008000"><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;s4&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">hello</span><span style="color: #000000">"</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">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;error：不能2个字面串字面值相加</span><span style="color: #008000"><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /></span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;s5&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;s1&nbsp;</span><span style="color: #000000">+</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">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">world</span><span style="color: #000000">"</span><span style="color: #000000">;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;ok：s1和"&nbsp;"相加后还是一个新的string对象，可以和后面的相加</span><span style="color: #008000"><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;s6&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">hello</span><span style="color: #000000">"</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">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;s2;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;error：前面2个就相当于字面串字面值相加<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /></span></div>
<div><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;（4）、string对象中字符的处理<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;主要是用到cctype头文件中定义的函数，如下：&nbsp; 
<blockquote>
<table style="border-bottom: medium none; border-left: medium none; border-collapse: collapse; border-top: medium none; border-right: medium none" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="border-bottom: medium none; border-left: #8064a2 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 111.75pt; padding-right: 5.4pt;background: #8064a2; border-top: #8064a2 1pt solid; border-right: medium none; padding-top: 0cm" valign="top" width="149">
<p align="center"><strong><span style="color: #cce8cf">Cctype</span></strong><strong><span style="font-family: 宋体; color: #cce8cf">定义的函数</span><span style="color: #cce8cf"></span></strong></p></td>
<td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 314.35pt; padding-right: 5.4pt;background: #8064a2; border-top: #8064a2 1pt solid; border-right: #8064a2 1pt solid; padding-top: 0cm" valign="top" width="419">
<p><strong>&nbsp;</strong></p></td></tr>
<tr>
<td style="border-bottom: #8064a2 1pt solid; border-left: #8064a2 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 111.75pt; padding-right: 5.4pt; border-top: #8064a2 1pt solid; border-right: medium none; padding-top: 0cm" valign="top" width="149">
<p><strong>isalnum(c)</strong></p></td>
<td style="border-bottom: #8064a2 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 314.35pt; padding-right: 5.4pt; border-top: #8064a2 1pt solid; border-right: #8064a2 1pt solid; padding-top: 0cm" valign="top" width="419">
<p><span style="font-family: 宋体">如果</span>c<span style="font-family: 宋体">是字母和数字，则为</span>true</p></td></tr>
<tr>
<td style="border-bottom: medium none; border-left: #8064a2 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 111.75pt; padding-right: 5.4pt; border-top: medium none; border-right: medium none; padding-top: 0cm" valign="top" width="149">
<p><strong>isalpha(c)</strong></p></td>
<td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 314.35pt; padding-right: 5.4pt; border-top: medium none; border-right: #8064a2 1pt solid; padding-top: 0cm" valign="top" width="419">
<p><span style="font-family: 宋体">如果</span>c<span style="font-family: 宋体">是字母，则为</span>true</p></td></tr>
<tr>
<td style="border-bottom: #8064a2 1pt solid; border-left: #8064a2 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 111.75pt; padding-right: 5.4pt; border-top: #8064a2 1pt solid; border-right: medium none; padding-top: 0cm" valign="top" width="149">
<p><strong>isdigit(c)</strong></p></td>
<td style="border-bottom: #8064a2 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 314.35pt; padding-right: 5.4pt; border-top: #8064a2 1pt solid; border-right: #8064a2 1pt solid; padding-top: 0cm" valign="top" width="419">
<p><span style="font-family: 宋体">如果</span>c<span style="font-family: 宋体">是数字，则为</span>true</p></td></tr>
<tr>
<td style="border-bottom: medium none; border-left: #8064a2 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 111.75pt; padding-right: 5.4pt; border-top: medium none; border-right: medium none; padding-top: 0cm" valign="top" width="149">
<p><strong>isxdigit(c)</strong></p></td>
<td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 314.35pt; padding-right: 5.4pt; border-top: medium none; border-right: #8064a2 1pt solid; padding-top: 0cm" valign="top" width="419">
<p><span style="font-family: 宋体">如果</span>c<span style="font-family: 宋体">是十六进制数，则为</span>true</p></td></tr>
<tr>
<td style="border-bottom: #8064a2 1pt solid; border-left: #8064a2 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 111.75pt; padding-right: 5.4pt; border-top: #8064a2 1pt solid; border-right: medium none; padding-top: 0cm" valign="top" width="149">
<p><strong>iscntrl(c)</strong></p></td>
<td style="border-bottom: #8064a2 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 314.35pt; padding-right: 5.4pt; border-top: #8064a2 1pt solid; border-right: #8064a2 1pt solid; padding-top: 0cm" valign="top" width="419">
<p><span style="font-family: 宋体">如果</span>c<span style="font-family: 宋体">是控制字符，则为</span>true</p></td></tr>
<tr>
<td style="border-bottom: medium none; border-left: #8064a2 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 111.75pt; padding-right: 5.4pt; border-top: medium none; border-right: medium none; padding-top: 0cm" valign="top" width="149">
<p><strong>ispunct(c)</strong></p></td>
<td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 314.35pt; padding-right: 5.4pt; border-top: medium none; border-right: #8064a2 1pt solid; padding-top: 0cm" valign="top" width="419">
<p><span style="font-family: 宋体">如果</span>c<span style="font-family: 宋体">是标点符号，则为</span>true</p></td></tr>
<tr>
<td style="border-bottom: #8064a2 1pt solid; border-left: #8064a2 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 111.75pt; padding-right: 5.4pt; border-top: #8064a2 1pt solid; border-right: medium none; padding-top: 0cm" valign="top" width="149">
<p><strong>isspace(c)</strong></p></td>
<td style="border-bottom: #8064a2 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 314.35pt; padding-right: 5.4pt; border-top: #8064a2 1pt solid; border-right: #8064a2 1pt solid; padding-top: 0cm" valign="top" width="419">
<p><span style="font-family: 宋体">如果</span>c<span style="font-family: 宋体">是空白字符，则为</span>true</p></td></tr>
<tr>
<td style="border-bottom: medium none; border-left: #8064a2 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 111.75pt; padding-right: 5.4pt; border-top: medium none; border-right: medium none; padding-top: 0cm" valign="top" width="149">
<p><strong>isprint(c)</strong></p></td>
<td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 314.35pt; padding-right: 5.4pt; border-top: medium none; border-right: #8064a2 1pt solid; padding-top: 0cm" valign="top" width="419">
<p><span style="font-family: 宋体">如果</span>c<span style="font-family: 宋体">是可打印的字符，则为</span>true</p></td></tr>
<tr>
<td style="border-bottom: #8064a2 1pt solid; border-left: #8064a2 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 111.75pt; padding-right: 5.4pt; border-top: #8064a2 1pt solid; border-right: medium none; padding-top: 0cm" valign="top" width="149">
<p><strong>isgraph(c)</strong></p></td>
<td style="border-bottom: #8064a2 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 314.35pt; padding-right: 5.4pt; border-top: #8064a2 1pt solid; border-right: #8064a2 1pt solid; padding-top: 0cm" valign="top" width="419">
<p><span style="font-family: 宋体">如果</span>c<span style="font-family: 宋体">不是空格，但可以打印，则为</span>true</p></td></tr>
<tr>
<td style="border-bottom: medium none; border-left: #8064a2 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 111.75pt; padding-right: 5.4pt; border-top: medium none; border-right: medium none; padding-top: 0cm" valign="top" width="149">
<p><strong>islower(c)</strong></p></td>
<td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 314.35pt; padding-right: 5.4pt; border-top: medium none; border-right: #8064a2 1pt solid; padding-top: 0cm" valign="top" width="419">
<p><span style="font-family: 宋体">如果</span>c<span style="font-family: 宋体">是小写字母，则为</span>true</p></td></tr>
<tr>
<td style="border-bottom: #8064a2 1pt solid; border-left: #8064a2 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 111.75pt; padding-right: 5.4pt; border-top: #8064a2 1pt solid; border-right: medium none; padding-top: 0cm" valign="top" width="149">
<p><strong>isupper(c)</strong></p></td>
<td style="border-bottom: #8064a2 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 314.35pt; padding-right: 5.4pt; border-top: #8064a2 1pt solid; border-right: #8064a2 1pt solid; padding-top: 0cm" valign="top" width="419">
<p><span style="font-family: 宋体">如果</span>c<span style="font-family: 宋体">是大写字母，则为</span>true</p></td></tr>
<tr>
<td style="border-bottom: medium none; border-left: #8064a2 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 111.75pt; padding-right: 5.4pt; border-top: medium none; border-right: medium none; padding-top: 0cm" valign="top" width="149">
<p><strong>tolower(c)</strong></p></td>
<td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 314.35pt; padding-right: 5.4pt; border-top: medium none; border-right: #8064a2 1pt solid; padding-top: 0cm" valign="top" width="419">
<p><span style="font-family: 宋体">如果</span>c<span style="font-family: 宋体">是大写字母，则返回其小写字母形式，否则直接返回</span>c</p></td></tr>
<tr>
<td style="border-bottom: #8064a2 1pt solid; border-left: #8064a2 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 111.75pt; padding-right: 5.4pt; border-top: #8064a2 1pt solid; border-right: medium none; padding-top: 0cm" valign="top" width="149">
<p><strong>toupper(c)</strong></p></td>
<td style="border-bottom: #8064a2 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 314.35pt; padding-right: 5.4pt; border-top: #8064a2 1pt solid; border-right: #8064a2 1pt solid; padding-top: 0cm" valign="top" width="419">
<p><span style="font-family: 宋体">如果</span>c<span style="font-family: 宋体">是大写字母，则返回其小写字母形式，否则直接返回</span>c</p></td></tr></tbody></table></blockquote><br /></div>
<p>&nbsp;&nbsp;&nbsp;</p></blockquote>   <img src ="http://www.cppblog.com/tiger7/aggbug/151575.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tiger7/" target="_blank">tiger7</a> 2012-05-22 21:57 <a href="http://www.cppblog.com/tiger7/articles/151575.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C++ Primer 学习笔记（三） ---- 第二章 变量和基本类型（2）</title><link>http://www.cppblog.com/tiger7/articles/121809.html</link><dc:creator>tiger7</dc:creator><author>tiger7</author><pubDate>Mon, 20 Jun 2011 13:53:00 GMT</pubDate><guid>http://www.cppblog.com/tiger7/articles/121809.html</guid><wfw:comment>http://www.cppblog.com/tiger7/comments/121809.html</wfw:comment><comments>http://www.cppblog.com/tiger7/articles/121809.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tiger7/comments/commentRss/121809.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tiger7/services/trackbacks/121809.html</trackback:ping><description><![CDATA[<blockquote style="margin-right: 0px" dir="ltr">
<p><strong>一、知识点</strong><br /><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1、基本内置类型（算术类型和void类型）<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2、字面值常量和变量</span><br /><span style="color: #ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3、const限定符<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4、引用<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5、typedef名字<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;6、枚举<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7、类类型<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8、头文件<br /><br /><strong style="color: #000000">二、要点</strong></span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1、const限定符<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 魔数：在上下文中没有体现出来，好像这个数是魔术般的从空中出现的。如下面的&#8220;512&#8221;这个数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img id="Codehighlighter1_31_44_Open_Image" onclick="this.style.display='none'; Codehighlighter1_31_44_Open_Text.style.display='none'; Codehighlighter1_31_44_Closed_Image.style.display='inline'; Codehighlighter1_31_44_Closed_Text.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_31_44_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_31_44_Closed_Text.style.display='none'; Codehighlighter1_31_44_Open_Image.style.display='inline'; Codehighlighter1_31_44_Open_Text.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif"><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;i&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: red">512</span><span style="color: #000000">;&nbsp;</span><span style="color: #000000">++</span><span style="color: #000000">i)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_31_44_Closed_Text"><img alt="" src="http://www.cppblog.com/Images/dot.gif" /></span><span id="Codehighlighter1_31_44_Open_Text"><span style="color: #000000">{<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000"><img alt="" src="http://www.cppblog.com/Images/dot.gif" />..</span><span style="color: #008000"><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif" /></span><span style="color: #000000">}</span></span></div><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 使用const限定符需注意：<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; （1）、定义的const的变量仍难是一个左值，但是这个左值是不可修改的；且在定义时必须初始化；<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;（2）、const变量默认都是文件局部的，如果想被其他文件访问，必须在前面加入extern。如： 
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /><span style="color: #000000">file_1.cpp:<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">extern</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">const</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;bufszie&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">512</span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;定义，需要赋初值</span><span style="color: #008000"><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /></span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />fiel_2.cpp:<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">extern</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">const</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;bufsize;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /><img alt="" src="http://www.cppblog.com/Images/dot.gif" />.<br /><img id="Codehighlighter1_132_143_Open_Image" onclick="this.style.display='none'; Codehighlighter1_132_143_Open_Text.style.display='none'; Codehighlighter1_132_143_Closed_Image.style.display='inline'; Codehighlighter1_132_143_Closed_Text.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_132_143_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_132_143_Closed_Text.style.display='none'; Codehighlighter1_132_143_Open_Image.style.display='inline'; Codehighlighter1_132_143_Open_Text.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif"></span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;i&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;bufsize； ++i)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_132_143_Closed_Text"><img alt="" src="http://www.cppblog.com/Images/dot.gif" /></span><span id="Codehighlighter1_132_143_Open_Text"><span style="color: #000000">{<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000"><img alt="" src="http://www.cppblog.com/Images/dot.gif" />.</span><span style="color: #008000"><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif" /></span><span style="color: #000000">}</span></span></div><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2、引用<br />
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;引用（reference）就是对象的另一个名称；非congst引用只能绑定到与该引用相同类型的对方上，const引用可以绑定到不同但相关的类型对象或绑定到右值。</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;重点：const引用，指向const对象的引用。 </p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #000000">1</span><span style="color: #000000">、赋值<br /></span><span style="color: #0000ff">const</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;ival&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1024</span><span style="color: #000000">;<br /></span><span style="color: #0000ff">const</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">&amp;</span><span style="color: #000000">refVal&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;ival;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;这个是正确的赋值</span><span style="color: #008000"><br /></span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">&amp;</span><span style="color: #000000">ref2&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000"> ival; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;这个是错误的赋值（ref2是可以重新赋值，这样导致ival的值会被改变，但ival是const的，所以这样赋值是不允许的）</span><span style="color: #008000"><br /></span><span style="color: #000000"><br /></span><span style="color: #000000">2</span><span style="color: #000000">、初始化<br /></span><span style="color: #0000ff">double</span><span style="color: #000000">&nbsp;dval&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">42.12</span><span style="color: #000000">;<br /></span><span style="color: #0000ff">const</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">&amp;</span><span style="color: #000000">r1&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">42</span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;用右值（字面值常量）初始化</span><span style="color: #008000"><br /></span><span style="color: #0000ff">const</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">&amp;</span><span style="color: #000000">r2&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;dval;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;用不同那个类型的对象初始化，这里的r2&nbsp;=&nbsp;42。如果r2不是const的话，这样初始化是错误的。</span></div><br />
<p>&nbsp; &nbsp; &nbsp; &nbsp;3、typedef</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; typedef可以用来定义类型的同义词。格式为：typedef + 数据类型 + 标识符。</p>
<p><br /></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; 4、枚举（enum）</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 格式：enum enumName(l可选) {enumerator1， enumerator2，...}<br /></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;（1）、枚举成员都是常量表达式（在编译器编译是就能计算出结果的整型表达式，或整型字面值常量）；</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;（2）、默认的第一个枚举成员是0，后面的每个枚举成员都比前一个大1；</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;（3）、枚举成员值不是唯一的：enum Points { p1 = 1, p2, p3 = 2, p4}，这其中p1=1,p2=2,p3=2,p4=3；</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;（4）、枚举类型的对象初始化或赋值时，只能通过该类型枚举的某个成员进行。</p>
<p><br /></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp;5、类类型</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;注意class和struct的区别：唯一区别，<span style="color: #ff0000">默认情况下，struct的成员为public，class的成员为private。</span></p>
<p><br /></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp;6、头文件</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;在const变量是用常量表达式初始化时，可以将它定义在头文件中；如果不是，则不应该在头文件中定义。</p></blockquote><img src ="http://www.cppblog.com/tiger7/aggbug/121809.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tiger7/" target="_blank">tiger7</a> 2011-06-20 21:53 <a href="http://www.cppblog.com/tiger7/articles/121809.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C++ Primer 学习笔记（二） ---- 第二章 变量和基本类型（1）</title><link>http://www.cppblog.com/tiger7/articles/112815.html</link><dc:creator>tiger7</dc:creator><author>tiger7</author><pubDate>Sat, 31 Jul 2010 12:23:00 GMT</pubDate><guid>http://www.cppblog.com/tiger7/articles/112815.html</guid><wfw:comment>http://www.cppblog.com/tiger7/comments/112815.html</wfw:comment><comments>http://www.cppblog.com/tiger7/articles/112815.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tiger7/comments/commentRss/112815.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tiger7/services/trackbacks/112815.html</trackback:ping><description><![CDATA[<blockquote>
<p><strong>一、知识点</strong><br /><span style="color: red">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1、基本内置类型（算术类型和void类型）</span><br /><span style="color: red">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2、字面值常量和变量</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3、const限定符<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4、引用<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5、typedef名字<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6、枚举<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7、类类型<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 8、头文件<br /><br /><strong>二、要点</strong></p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <em>1、基本内置类型<br /></em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;算术类型（arithmetic type）包括：整数、浮点数、单个字符和布尔值。 整型包括整数、字符和布尔值；整数包括有符号和无符号的，无符号都表示正整数，有符号的可以表示负数（当符号位为1时，值为负数；符号位为0时，表示正数；符号位一般是高位）。浮点数包括单精度（float&nbsp; 32位）、双精度（double&nbsp; 64位）、扩展精度（long double&nbsp; 96或128位）。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <em>2、字面值常量<br /></em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 只有内置类型存在字面值，没有类类型的字面值。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 20（十进制），024（八进制，以零开头），0x14（十六进制，以0x开头）&nbsp;&nbsp;&nbsp;&nbsp; -------------&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 整形字面值<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3.14159F（单精度），12.345L（扩展精度），0e0（科学计数）&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -------------&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;浮点字面值<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; true，false&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -------------&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 布尔字面值<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'a'，'2'（这两个都是字符），L'a'（宽字符，wchar_t）&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -------------&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;字符字面值<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "Hello World"（字符串），L"Hello World"（宽字符串）&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -------------&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 字符串字面值<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 此外还有一些&#8220;非打印字符转换序列&#8221;：如：\n（换行）、\t（水平制表符）、\r（回车符）、\\（反斜杠）等（也可以用\ooo，即3个反斜杠加3个数字来表示，对于与ASCII码）。<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <em>3、变量<br /></em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 右值（rvalue）：右值只能出现在赋值的右边，不能出现在赋值语句的左边；<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 左值（lvalue）：左值可以出现在赋值语句的左边，也可以出现在右边。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;数字字面值是右值，因此不能被赋值，如 0 = 1，这样就是错误的。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 变量名（标识符），由字母、数字和下划线组成。必须以下划线或字母开头，不能以数字开头。标识符不能包含2个连续的下划线，也不能以下划线开头后面紧跟一个大写字母。注意一些C++中关键字。<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 变量的初始化：<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int ival(1024);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//直接初始化<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int ival = 1024;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //复制初始化<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 声明（表明变量的名称和类型）、定义（还要为变量分配存储空间）。 </blockquote><img src ="http://www.cppblog.com/tiger7/aggbug/112815.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tiger7/" target="_blank">tiger7</a> 2010-07-31 20:23 <a href="http://www.cppblog.com/tiger7/articles/112815.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C++ Primer 学习笔记（一） ----  第一章 快速入门</title><link>http://www.cppblog.com/tiger7/articles/112208.html</link><dc:creator>tiger7</dc:creator><author>tiger7</author><pubDate>Fri, 16 Apr 2010 17:01:00 GMT</pubDate><guid>http://www.cppblog.com/tiger7/articles/112208.html</guid><wfw:comment>http://www.cppblog.com/tiger7/comments/112208.html</wfw:comment><comments>http://www.cppblog.com/tiger7/articles/112208.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tiger7/comments/commentRss/112208.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tiger7/services/trackbacks/112208.html</trackback:ping><description><![CDATA[<blockquote>
<p>一、知识点<br /><span style="color: red">&nbsp;&nbsp;&nbsp;&nbsp;1、基本的C++程序</span><br /><span style="color: red">&nbsp;&nbsp;&nbsp;&nbsp;2、4个基本的输入输出对象</span><br /><span style="color: red">&nbsp;&nbsp;&nbsp;&nbsp;3、注释：//、/*..*/</span><br /><span style="color: red">&nbsp;&nbsp;&nbsp;&nbsp;4、控制语句（while、for、if）</span><br /><span style="color: red">&nbsp;&nbsp;&nbsp;&nbsp;5、类类型（类的简单介绍）</span><br />&nbsp;<br />二、要点&nbsp;<br />&nbsp;&nbsp;&nbsp;1、基本的C++程序<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C++程序最重要的是main函数，每个C++程序必须包含，它（main函数）是操作系统唯一能显示调用的函数。<br />&nbsp;&nbsp;&nbsp;&nbsp;2、4个基本的输入输出对象<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin：标准输入；cout：标准输出；clog：产生程序执行的一般信息；cerr：标准错误，输出警告和错误信息。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;一个简单的输入输出程序：<iostream> <br /></p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">#include&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">iostream</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;main()<br /><img id="Codehighlighter1_32_271_Open_Image" onclick="this.style.display='none'; Codehighlighter1_32_271_Open_Text.style.display='none'; Codehighlighter1_32_271_Closed_Image.style.display='inline'; Codehighlighter1_32_271_Closed_Text.style.display='inline';" align="top" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_32_271_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_32_271_Closed_Text.style.display='none'; Codehighlighter1_32_271_Open_Image.style.display='inline'; Codehighlighter1_32_271_Open_Text.style.display='inline';" align="top" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_32_271_Closed_Text"><img src="http://www.cppblog.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_32_271_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;std::cout&nbsp;</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">Enter&nbsp;You&nbsp;Name:</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">&nbsp;std::endl;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">这里先输出一行信息</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">char</span><span style="color: #000000">&nbsp;name[</span><span style="color: #000000">50</span><span style="color: #000000">];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">定义一个字符变量</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;std::cin&nbsp;</span><span style="color: #000000">&gt;&gt;</span><span style="color: #000000">&nbsp;name;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">将客户的输入输入到变量中</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;std::cout&nbsp;</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">&nbsp;name&nbsp;</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;Welecon&nbsp;to&nbsp;tiger's&nbsp;blog.</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">&nbsp;std::endl;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">输出</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;system(</span><span style="color: #000000">"</span><span style="color: #000000">pause</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">控制在最后暂停</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span></div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8220;&lt;&lt;&#8221;：输出操作符。接受2个操作数，左操作数必须是ostream对象，右操作数是要输出的值。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8220;&gt;&gt;&#8221;：输入操作符。同上，左操作数必须是istream对象，右操作数是保存输入结构的对象。<br />&nbsp;&nbsp;&nbsp; 3、注释<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8220;//&#8221;：单行注释；&#8220;/*...*/&#8221;：多行注释。注意，注释中不能嵌套。 <br />&nbsp;&nbsp;&nbsp; 4、控制语句<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while、for、if三个。while是可以设置无穷循环的，而for则是有限循环中用到的；if是用于判断中的。<br />&nbsp;&nbsp;&nbsp;&nbsp;5、类<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 类的名称、成员变量、成员函数。<br />&nbsp;&nbsp;&nbsp; 6、其他<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 对应std::cin &gt;&gt; i 这个语句，它返回的是个cin的操作符，即对于while (std::cin &gt;&gt; i) 的这个循环中，验证的是cin这个对象，如果遇到文件结束符或无效输入时，这个cin对象是无效的，这while判断中就是false。<br /></blockquote><img src ="http://www.cppblog.com/tiger7/aggbug/112208.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tiger7/" target="_blank">tiger7</a> 2010-04-17 01:01 <a href="http://www.cppblog.com/tiger7/articles/112208.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C++ Primer 学习笔记</title><link>http://www.cppblog.com/tiger7/articles/112205.html</link><dc:creator>tiger7</dc:creator><author>tiger7</author><pubDate>Sat, 10 Apr 2010 16:50:00 GMT</pubDate><guid>http://www.cppblog.com/tiger7/articles/112205.html</guid><wfw:comment>http://www.cppblog.com/tiger7/comments/112205.html</wfw:comment><comments>http://www.cppblog.com/tiger7/articles/112205.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tiger7/comments/commentRss/112205.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tiger7/services/trackbacks/112205.html</trackback:ping><description><![CDATA[新买了本C++ Primer的书（虽然是D，呵呵），开始学习C++，开始做做笔记。 代码主要是在VS205上编译运行的。
  <img src ="http://www.cppblog.com/tiger7/aggbug/112205.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tiger7/" target="_blank">tiger7</a> 2010-04-11 00:50 <a href="http://www.cppblog.com/tiger7/articles/112205.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>