亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 教學--第二十二章 結構.htm

?? 電子書籍(白話c++)非常好用的一本書
?? HTM
?? 第 1 頁 / 共 4 頁
字號:
      <P> </P>
      <P><SPAN 
      lang=zh-cn>上面函數顯然是錯誤,對一個四方形求周長的函數,怎么可以莫名地修改人家四方形的邊長呢?并且由于參數我們在前面改為用“傳址”方式,所以當一個四方形求完周長后,它的邊長1竟然長了一倍長……</SPAN></P>
      <P> </P>
      <P>...</P>
      <P>SiFangXing sfxA; //<SPAN lang=zh-cn>四方形A</SPAN></P>
      <P>sfxA.l1 = sfxA.l2 = 10; //<SPAN lang=zh-cn>長10</SPAN></P>
      <P>sfxA.w1 = sfxA.w2 = 5; <SPAN lang=zh-cn>&nbsp;</SPAN>//<SPAN 
      lang=zh-cn>寬5</SPAN></P>
      <P> </P>
      <P>//<SPAN lang=zh-cn>求周長之前,輸出四邊長:</SPAN></P>
      <P>cout &lt;&lt; "<SPAN lang=zh-cn>四邊長:</SPAN>" &lt;&lt; sfxA.l1 &lt;&lt; 
      "," &lt;&lt; sfxA.l2 &lt;&lt; ","</P>
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;&lt; sfxA.w1 &lt;&lt; "," 
      &lt;&lt; sfxA.w2 &lt;&lt; endl;</P>
      <P> </P>
      <P>int zhouChang = QiuZhouChang(sfxA); //<SPAN lang=zh-cn>求周長</SPAN></P>
      <P> </P>
      <P>cout &lt;&lt; "<SPAN lang=zh-cn>周&nbsp; 長</SPAN>:" &lt;&lt; zhouChang 
      &lt;&lt; endl;</P>
      <P> </P>
      <P>//<SPAN lang=zh-cn>求周長之后,再輸出四邊長:</SPAN></P>
      <P>cout &lt;&lt; "<SPAN lang=zh-cn>四邊長:</SPAN>" &lt;&lt; sfxA.l1 &lt;&lt; 
      "," &lt;&lt; sfxA.l2 &lt;&lt; ","</P>
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;&lt; sfxA.w1 &lt;&lt; "," 
      &lt;&lt; sfxA.w2 &lt;&lt; endl;</P>
      <P>...</P>
      <P> </P>
      <P><SPAN lang=zh-cn>上面的代碼輸出結果是:</SPAN></P>
      <P> </P>
      <P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; LINE-HEIGHT: 100%"><FONT 
      color=#ffffff><SPAN lang=zh-cn 
      style="BACKGROUND-COLOR: #000000">四邊長:</SPAN><SPAN 
      style="BACKGROUND-COLOR: #000000">10,10,5,5</SPAN></FONT></P>
      <P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; LINE-HEIGHT: 100%"><FONT 
      color=#ffffff><SPAN lang=zh-cn style="BACKGROUND-COLOR: #000000">周&nbsp; 
      長:</SPAN><SPAN style="BACKGROUND-COLOR: #000000">30</SPAN></FONT></P>
      <P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; LINE-HEIGHT: 100%"><FONT 
      color=#ffffff><SPAN lang=zh-cn 
      style="BACKGROUND-COLOR: #000000">四邊長:2</SPAN><SPAN 
      style="BACKGROUND-COLOR: #000000">0,10,5,5</SPAN></FONT></P>
      <P> </P>
      <P><SPAN 
      lang=zh-cn>你可能會說,我絕不會在發高燒時寫代碼,但要知道,如果一個函數體內的代碼足夠復雜,那么每個人都有可能在不發高燒的情況下,也寫出愚蠢的代碼來。C++提供了一種方法,讓我們可更好的避免此類錯誤代碼。這就是我們所說的“<B>常量傳址</B>”。</SPAN></P>
      <P> </P>
      <P>//<SPAN lang=zh-cn>傳址常量形式的參數</SPAN></P>
      <P>int QiuZhouChang (<B>const SiFangXing&amp;</B> sfx)</P>
      <P>{</P>
      <P>&nbsp;&nbsp; return sfx.l1 + sfx.l2 + sfx.w1 + sfx.w2;</P>
      <P>}</P>
      <P> </P>
      <P><SPAN lang=zh-cn>1、上述參數形式中,參數</SPAN> sfx<SPAN lang=zh-cn> 
      將以傳址的方式來傳遞。傳址方式避免了參數復制品造成的內存與速度的問題。符號“<B>&amp;</B>”標明了它是使用傳址。</SPAN></P>
      <P><SPAN lang=zh-cn>2、</SPAN><B>const</B> <SPAN lang=zh-cn>修飾符 則指明</SPAN> 
      sfx<SPAN lang=zh-cn> 將被當作常量對待,該語法規定你不能在當前函數內修改這個參數——不管你是否發高燒。</SPAN></P>
      <P> </P>
      <P><SPAN lang=zh-cn>請在CB時試著寫下面的高燒代碼:</SPAN></P>
      <P> </P>
      <P>int QiuZhouChang(<B><FONT color=#ff0000>const</FONT> 
      SiFangXing&amp;</B> sfx)</P>
      <P>{</P>
      <P>&nbsp;&nbsp; int zc = sfx.l1 + sfx.l2 + sfx.w1 + sfx.w2; //<SPAN 
      lang=zh-cn>四邊之和即是周長</SPAN></P>
      <P> </P>
      <P>&nbsp;&nbsp; <B>sfx.l1 *= 2;&nbsp; //<SPAN 
      lang=zh-cn>編譯時,該行會報錯</SPAN></B></P>
      <P> </P>
      <P>&nbsp;&nbsp; return zc;</P>
      <P>}</P>
      <P> </P>
      <P><SPAN lang=zh-cn>編譯器將拒絕通過上述代碼。</SPAN></P>
      <P> </P>
      <P><SPAN lang=zh-cn>趁熱打鐵,我們再來一個“常量傳址”例子,就是上面的輸出四方形各邊長的代碼:</SPAN></P>
      <P> </P>
      <P>//<SPAN lang=zh-cn>輸出指定四方形的四邊長:</SPAN></P>
      <P>void ShuChuSiBianChang(const SiFangXing&amp; sfx)</P>
      <P>{</P>
      <P>&nbsp;&nbsp; cout &lt;&lt; "<SPAN lang=zh-cn>四邊長</SPAN>: " &lt;&lt; 
      sfx.l1 &lt;&lt; "," &lt;&lt; sfx.l2 &lt;&lt; "," &lt;&lt; sfx.w1 &lt;&lt; 
      "," &lt;&lt; sfx.w2 &lt;&lt; endl;</P>
      <P>}</P>
      <P> </P>
      <P><SPAN lang=zh-cn>像類似上述的兩個函數參數,你可以拒絕使用 “</SPAN>&amp;<SPAN lang=zh-cn>” 
      來指定使用傳址;你也可以拒絕使用</SPAN> const<SPAN lang=zh-cn> 
      來限制它是一個常量。你的代碼可以工作,但它們效率不好;并且,你的代碼越來越多時,你犯錯誤的機率很可能急劇地升高,直到整個程序亂成一團。</SPAN></P>
      <P> </P>
      <P><SPAN 
      lang=zh-cn>程序員要養成良好習慣。否則除了上述的問題外,當你與其他具備良好習慣的程序員一起寫程序時,你會發現你的代碼將無法和別人的代碼很好地銜接,甚至不“兼容”。</SPAN></P>
      <P> </P>
      <P><SPAN lang=zh-cn>C++ 
      和其它語言相比,就是它提供了很多強大的語法功能,但它并不強制你使用。其它的語言,有的是提供了同樣的語法功能,并強制你使用;而有些則缺少必要的語法。之所以C++是現在這個樣子,有它的歷史原因,比如說它必須兼容C語言。</SPAN></P>
      <P> </P>
      <P><B><FONT size=2><A name=22.6.1.4>22.6.1.4</A> 
      兼容C:使用指針傳遞結構變量</FONT></B></P>
      <P> </P>
      <P><SPAN lang=zh-cn>C 當然也只持最普通的“傳值”方式:</SPAN></P>
      <P> </P>
      <P>int QiuZhouChang (SiFangXing sfx)</P>
      <P>{</P>
      <P>&nbsp;&nbsp; return sfx.l1 + sfx.l2 + sfx.w1 + sfx.w2;</P>
      <P>}</P>
      <P> </P>
      <P><SPAN lang=zh-cn>但前所言,“傳值”有雙浪費之弊。我們堅決反倒。微軟的程序員也堅決反對——可以</SPAN> 
      Windows<SPAN lang=zh-cn> 中很大一部分就是拿C寫的。而C既不支持使用“&amp;”來實現傳址方式,也不支持</SPAN> 
      const <SPAN 
      lang=zh-cn>修飾為“常量”。怎么辦?答案可能很出乎你的意料:沒辦法。象寫操作系統這類程序,“效率”永遠是重中之重,所以只要冒著程序有層出不窮的BUG的危險,只考慮如效率了。</SPAN></P>
      <P> </P>
      <P><SPAN lang=zh-cn>在 C 語言時,要實現傳址,方法就是用指針。C++ 兼容這一點。</SPAN></P>
      <P> </P>
      <P>int QiuZhouChang(<B>SiFangXing*</B> psfx)</P>
      <P>{</P>
      <P>&nbsp;&nbsp; return psfx-&gt;l1 + psfx-&gt;l2 + psfx-&gt;w1 + 
      psfx-&gt;w2;&nbsp; //<SPAN lang=zh-cn> </SPAN>.<SPAN lang=zh-cn> 
      換成了</SPAN> -&gt;,<SPAN lang=zh-cn>因為</SPAN>psf<SPAN 
      lang=zh-cn>是指針</SPAN></P>
      <P>}</P>
      <P> </P>
      <P><B><SPAN lang=zh-cn>調用時,如果實參不是一個指針,就使用</SPAN> &amp; <SPAN 
      lang=zh-cn>來取址:</SPAN></B></P>
      <P> </P>
      <P>...</P>
      <P>SiFangXing* sfxA;</P>
      <P>sfxA.l1 = sfxA.l2 = 10;</P>
      <P>sfxA.w1 = sfxA.w2 = 5;</P>
      <P> </P>
      <P>int zc = QiuZhouChang(<B>&amp;sfxA</B>); //&amp; <SPAN 
      lang=zh-cn>用于得到</SPAN>sfxA<SPAN lang=zh-cn>地址</SPAN></P>
      <P> </P>
      <P><SPAN lang=zh-cn>傳指針就是傳地址。效率問題解決了,但“高燒”代碼編譯器不會指出:</SPAN></P>
      <P> </P>
      <P>int QiuZhouChang(<B>SiFangXing*</B> psfx)</P>
      <P>{</P>
      <P>&nbsp;&nbsp; int zc = psfx-&gt;l1 + psfx-&gt;l2 + psfx-&gt;w1 + 
      psfx-&gt;w2;&nbsp; //<SPAN lang=zh-cn> </SPAN>.<SPAN lang=zh-cn> 
      換成了</SPAN> -&gt;,<SPAN lang=zh-cn>因為</SPAN>psf<SPAN 
      lang=zh-cn>是指針</SPAN></P>
      <P> </P>
      <P>&nbsp;&nbsp; psfx-&gt;l1 *= 2;</P>
      <P> </P>
      <P>&nbsp;&nbsp; return zc;</P>
      <P>}</P>
      <P> </P>
      <P><SPAN 
      lang=zh-cn>編譯器會認為,或許這就是你原來想要的。事實上,編譯器讀不懂英語,更不懂得中國拼音,它,怎么知道你是“</SPAN>QiuZhouChang<SPAN 
      lang=zh-cn>”函數是要“求周長”呢?:P</SPAN></P>
      <P> </P>
      <P><B><FONT size=4><A name=22.6.2>22.6.2</A> 函數返回值是結構類型</FONT></B></P>
      <P> </P>
      <P><SPAN lang=zh-cn>函數的返回值也可以一個結構變量。</SPAN></P>
      <P> </P>
      <P><SPAN lang=zh-cn>讓我們來實現這么一個功能:把四方形A 
      和四方形B相加,得到四方形C。相加的方法是長+長,寬+寬。</SPAN></P>
      <P> </P>
      <P><B>SiFangXing</B> AddSiFangXing (const SiFangXing&amp; aSfx, const 
      SiFangXing&amp; bSfx)</P>
      <P>{</P>
      <P>&nbsp;&nbsp; SiFangXing cSfx;</P>
      <P> </P>
      <P>&nbsp;&nbsp; cSfx.l1 = aSfx.l1 + bSfx.l1;</P>
      <P>&nbsp;&nbsp; cSfx.w1 = aSfx.w1 + bSfx.w1;</P>
      <P> </P>
      <P>&nbsp;&nbsp; cSfx.l2 = aSfx.l2 + bSfx.l2;</P>
      <P>&nbsp;&nbsp; cSfx.w2 = aSfx.w2 + bSfx.w2;</P>
      <P> </P>
      <P>&nbsp;&nbsp; return cSfx;</P>
      <P>}</P>
      <P> </P>
      <P><SPAN lang=zh-cn>調用樣例為:</SPAN></P>
      <P> </P>
      <P>...</P>
      <P>SiFangXing a,b,c;</P>
      <P> </P>
      <P>a.l1 = a.l2 = 10;</P>
      <P>a.w1 = a.w2 = 5;</P>
      <P> </P>
      <P>b.l1 = b.l2 = 20;</P>
      <P>b.w1 = b.w2 = 18;</P>
      <P> </P>
      <P>c = AddSiFangXing ( a, b );</P>
      <P> </P>
      <P>ShuChuSiBianChang(c); //<SPAN lang=zh-cn>輸出,見</SPAN>22.6.3<SPAN 
      lang=zh-cn>節</SPAN></P>
      <P>...</P>
      <P> </P>
      <P><SPAN lang=zh-cn>上這代碼結果為:</SPAN></P>
      <P><SPAN lang=zh-cn>四邊長:</SPAN> 30,30,23,23</P>
      <P> </P>
      <P><B><FONT size=4><A name=22.7>22.7</A> 作業</FONT></B></P>
      <P> </P>
      <P><SPAN lang=zh-cn>一、本章中的所有例程,請都在CB上演練一番。</SPAN></P>
      <P><SPAN lang=zh-cn>二、寫一個求四方形面積的函數。</SPAN></P>
      <P><SPAN lang=zh-cn>三、請寫一個將四方形長和寬對調的函數。</SPAN></P>
      <P><SPAN lang=zh-cn>四、請寫一個函數,輸入兩個四方形,返回其中面積較大者。</SPAN></P>
      <P><SPAN 
      lang=zh-cn>五、請定義一個“圓”的結構。并寫相應的三個函數實現:1、求圓周長,2、求圓面積,3、讓指定的圓周長增加一倍。</SPAN></P>
      <P> </P></TD></TR>
  <TR>
    <TD 
    style="FONT-SIZE: 10pt; TEXT-INDENT: 20px; LINE-HEIGHT: 150%; FONT-FAMILY: &Euml;&Icirc;&Igrave;&aring;" 
    width="100%" height=37> </TD></TR></TBODY></TABLE></CENTER></BODY></HTML>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美国产精品专区| 久久精品视频免费| 色综合天天狠狠| 成人精品在线视频观看| 丁香五精品蜜臀久久久久99网站| 韩国av一区二区| 国产一区二区调教| 国产成人免费在线观看不卡| 丁香婷婷深情五月亚洲| 国产电影一区在线| 97久久超碰国产精品| 91麻豆自制传媒国产之光| 欧美在线观看你懂的| 欧美三级电影在线观看| 欧美一区午夜精品| 精品国产一区二区在线观看| 国产偷国产偷亚洲高清人白洁| 国产精品污网站| 一区2区3区在线看| 日av在线不卡| 成人一区二区三区在线观看| 99国产麻豆精品| 精品婷婷伊人一区三区三| 日韩欧美国产综合| 中文字幕不卡一区| 婷婷夜色潮精品综合在线| 久久99精品久久久久久国产越南| 国产白丝网站精品污在线入口| 99久久婷婷国产| 欧美日本视频在线| 久久久精品黄色| 亚洲国产成人91porn| 国产在线视频一区二区三区| 99热这里都是精品| 91精品久久久久久久91蜜桃| 国产丝袜欧美中文另类| 亚洲成av人片观看| 高清在线不卡av| 欧美酷刑日本凌虐凌虐| 国产亚洲精品7777| 日韩主播视频在线| 成人黄色av电影| 欧美一区二区三区日韩| 一区免费观看视频| 蜜臀精品久久久久久蜜臀| eeuss鲁片一区二区三区| 91麻豆精品国产91久久久久 | 国产精品三级在线观看| 精品午夜久久福利影院| 99vv1com这只有精品| 日韩一区二区三区观看| 亚洲激情欧美激情| 福利91精品一区二区三区| 91精选在线观看| 亚洲乱码精品一二三四区日韩在线| 久久99精品一区二区三区 | 一卡二卡欧美日韩| 大白屁股一区二区视频| 日韩欧美国产综合| 日韩精品成人一区二区在线| 色天天综合久久久久综合片| 国产精品每日更新在线播放网址| 免费观看久久久4p| 欧美日韩精品二区第二页| 亚洲免费在线电影| www.综合网.com| 国产免费观看久久| 国产福利91精品一区二区三区| 精品女同一区二区| 麻豆91在线播放免费| 日韩三级视频中文字幕| 日韩精品视频网| 欧美裸体bbwbbwbbw| 午夜激情综合网| 欧美人伦禁忌dvd放荡欲情| 亚洲电影第三页| 欧美日韩一区成人| 丝袜国产日韩另类美女| 欧美精品久久99| 免费成人在线播放| 精品少妇一区二区三区视频免付费| 青青草97国产精品免费观看无弹窗版| 欧美日韩国产另类不卡| 日本欧美久久久久免费播放网| 欧美日韩综合不卡| 美国三级日本三级久久99| 欧美一区二区三区成人| 久久疯狂做爰流白浆xx| 日韩精品在线看片z| 国产精品 欧美精品| 国产精品久久久久久久久快鸭| www.在线欧美| 国产一区二区免费视频| 精品国产污网站| 成人黄色小视频| 一区二区三区在线不卡| 91精品国模一区二区三区| 精品一区二区三区免费观看| 中文字幕乱码亚洲精品一区| 夜夜揉揉日日人人青青一国产精品| 欧美国产日韩亚洲一区| zzijzzij亚洲日本少妇熟睡| 亚洲成人综合在线| 精品国产乱码久久久久久浪潮| 日韩精品亚洲专区| 91亚洲精华国产精华精华液| 韩国女主播成人在线观看| 日韩电影在线观看电影| 亚洲综合av网| 一区二区成人在线| 亚洲一区视频在线| 亚洲狠狠爱一区二区三区| 亚洲人成人一区二区在线观看 | 国产91精品免费| 久久精品99国产国产精| 美女久久久精品| 国产一区二区三区久久久| 久久99这里只有精品| 精品一二三四区| 国产一区激情在线| 国v精品久久久网| 成人99免费视频| 91理论电影在线观看| 欧美中文字幕一二三区视频| 欧美日韩一区二区三区在线看 | 亚洲一区二区不卡免费| 亚洲福中文字幕伊人影院| 午夜欧美一区二区三区在线播放| 丝袜美腿亚洲综合| 九色综合国产一区二区三区| 国产一区二区三区在线观看精品 | 男女激情视频一区| 久久99精品国产麻豆婷婷洗澡| 国产精品一区二区黑丝| proumb性欧美在线观看| 欧美在线视频不卡| 日韩你懂的在线播放| 久久久久国产精品麻豆ai换脸| 中文字幕的久久| 亚洲一区二区成人在线观看| 奇米四色…亚洲| 成人免费黄色在线| 欧美日韩国产中文| 精品国产乱码久久久久久老虎 | 亚洲精品国产一区二区三区四区在线 | 日本一区二区免费在线| 亚洲免费在线看| 久久精品999| 一本一道综合狠狠老| 欧美一区三区二区| 国产精品美女www爽爽爽| 五月激情六月综合| 国产成人亚洲综合a∨婷婷| 色婷婷亚洲婷婷| www久久精品| 亚洲一区二区成人在线观看| 国产一区二区三区不卡在线观看| 色综合天天综合网天天狠天天| 日韩一区二区不卡| 亚洲精选一二三| 国产麻豆成人精品| 欧美日韩精品一区二区天天拍小说| www成人在线观看| 午夜精品福利在线| 99精品热视频| 久久综合色婷婷| 视频一区视频二区中文字幕| 欧美视频中文字幕| 精品999在线播放| 亚洲v精品v日韩v欧美v专区| 高清不卡在线观看av| 欧美一级精品大片| 亚洲在线视频网站| 成年人国产精品| 久久精品视频在线免费观看| 全国精品久久少妇| 欧美午夜宅男影院| 亚洲欧美日韩国产手机在线 | 久久久国产午夜精品| 首页国产丝袜综合| 欧美少妇一区二区| 亚洲精品欧美激情| va亚洲va日韩不卡在线观看| 精品播放一区二区| 久久精品99国产精品| 91精品一区二区三区久久久久久| 一区二区三区四区蜜桃| 99综合影院在线| 国产精品毛片无遮挡高清| 国产米奇在线777精品观看| 欧美一级久久久| 日韩高清电影一区| 欧美精品亚洲二区| 亚洲午夜日本在线观看| 欧美性xxxxxx少妇| 一区二区三区在线观看欧美| 91福利在线观看| 亚洲私人黄色宅男| 一本大道久久a久久综合| 一区免费观看视频|