C++primer第六章学习小记

论坛 期权论坛     
选择匿名的用户   2021-6-2 17:32   423   0
<p>1.形参列表中的形参通常用逗号隔开,其中每个形参都是含有一个声明符的声明。即使两个形参的类型一样,也必须把两个类型都写出来。</p>
<p>如:int  f3(int v1,v2)  { /*1&#96;&#96;&#96;&#96;&#96;&#96;&#96;&#96;&#96;&#96;&#96;&#96;&#96;&#96; */}      //错误</p>
<p>       int  f4(int v1,int v2)   { /*1&#96;&#96;&#96;&#96;&#96;&#96;&#96;&#96;&#96;&#96;&#96;&#96;&#96;&#96; */}    //正确</p>
<p>2..即使某个形参不被函数使用,也必须为它提供一个实参,函数参数传递使用引用能够避免大规模拷贝.</p>
<p>3.自动对象:把只存在于块执行期间的对象称为自动对象。形参是一种自动对象。</p>
<p>   局部静态对象:将局部变量定义成static类型从而获得这样的对象。局部静态变量的声明周期贯穿函数调用及之后的时间。</p>
<p><span style="color:#ff0000">静态局部变量:</span><span style="color:#000000; background-color:rgb(102,255,255)">有时希望函数中的局部变量的值在函数调用结束后不消失而保留原值,即其占用的存储单元不释放,在下一次该函数调用时,该变量保留上一次函数调用结束时的值。这时就应该指定该局部变量为静态局部变量(static local variable)。</span></p>
<p><span style="font-family:SimSun; font-size:18px"><span style="font-weight:bold">  <span style="font-weight:bold"><span style="font-size:18px"><span style="font-family:SimSun"><span style="font-size:18px">#ifndef/#define/#endif(<strong><span style="font-family:Simsun; font-size:18px">防止该头文件被重复引用</span></strong>):</span></span></span></span></span></span></p>
<p><span style="font-family:SimSun; font-size:18px"><span style="font-weight:bold"><span style="font-weight:bold"><span style="font-size:18px"><span style="font-family:SimSun"><span style="font-size:18px">   <span style="white-space:pre">#ifndef A</span>_H意思是&#34;if not define a.h&#34;  如果不存在a.h</span></span></span></span></span></span></p>
<p><span style="font-family:SimSun; font-size:18px"><span style="font-weight:bold"><span style="font-weight:bold"><span style="font-size:18px"><span style="font-family:SimSun"><span style="font-size:18px">    接着的语句应该#define A_H  就引入a.h</span></span></span></span></span></span></p>
<p><span style="font-family:SimSun; font-size:18px"><span style="font-weight:bold"><span style="font-weight:bold"><span style="font-size:18px"><span style="font-family:SimSun"><span style="font-size:18px">    最后一句应该写#endif   否则不需要引入。</span></span></span></span></span></span></p>
<h5><span style="font-family:SimSun"><span style="font-family:SimSun"><span style="font-family:Helvetica,Tahoma,Arial,sans-serif; font-weight:normal; background-color:rgb(245,245,245)"><span style="font-size:14px">4.size_type类型的对象定义为unsigned int,unsigned long、unsigned long long的变量(6.2.2)。</span></span></span></span></h5>
<h5><span style="font-family:SimSun"><span style="font-family:SimSun"><span style="font-family:Helvetica,Tahoma,Arial,sans-serif; background-color:rgb(245,245,245)"><span style="font-size:14px; font-weight:normal">5.  使用引用形参返回额外信息:</span></span></span></span></h5>
<h5><span style="font-family:SimSun"><span style="font-family:SimSun"><span style="font-family:Helvetica,Tahoma,Arial,sans-serif; background-color:rgb(245,245,245)"><span style="font-size:14px; font-weight:normal">  </span></span></span></span><pre class="blockcode"><code class="language-cpp">#include&lt;iostream&gt;
using namespace std;
string::size_type find_char(const string &amp;s, char c, string::size_type &amp;occurs)//‘s’作为查找范围的一个string对象;‘c’要查找的字符;用于保存字符出现次数的size_type对象。</code></pre><pre class="blockcode"><code class="language-cpp">{
auto ret &#61; s.size();//第一次出现的位置,如果有的话
occurs &#61; 0;//设置表示出现次数的形参值
for (decltype(ret) i &#61; 0; i !&#61; s.size(); &#43;&#43;i)
{
  if (s[i] &#61;&#61; c)
  {
   if (ret &#61;&#61; s.size())//ret的初始值设为字符串的长度,所以当第一次查找到要查找的字符时,执行此if语句,此时ret值为s.size(),接下来执行ret&#61;i;
    ret &#61; i;//ret的值记录下第一次查找字符出现的位置,此时ret的值发生了改变,不再和s.size相等,所以接下来上面的这条if语句不再执行;
   &#43;&#43;occurs;//这条语句不属于上面这个if语句,而是属于外面的if语句,if语句执行的是自己下面的{}里面的,没有的话就默认是if自己下面的第一条语句;
  }<span style="white-space: pre;">  </span>//所以&#43;&#43;occurs会接着执行,只要出现要查找的字符满足外边的if语句</code></pre><pre class="blockcode"><code class="language-cpp"> }
return ret;
}
int main()
{
unsigned ctr;
auto index &#61;find_char(&#34;fffytttt&#34;, &#39;t&#39;, ctr);
cout &lt;&lt; ctr &lt;&lt; index&lt;&lt;endl; //输出出现的次数和第一次出现的位置
system(&#34;pause&#34;);
}</code></pre><br> <br> <span style="font-size:18px">6.iterator:是
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP