亚洲欧洲国产欧美一区精品,激情五月亚洲色五月,最新精品国偷自产在线婷婷,欧美婷婷丁香五月天社区

      考試首頁(yè) | 考試用書 | 培訓(xùn)課程 | 模擬考場(chǎng) | 考試論壇  
      全國(guó)  |             |          |          |          |          |         
        當(dāng)前位置:計(jì)算機(jī)等級(jí) > 二級(jí)考試 > C語(yǔ)言程序設(shè)計(jì) > C語(yǔ)言輔導(dǎo) > 文章內(nèi)容
        

      全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言入門教程(125)

      中華IT學(xué)院   【 】  [ 2016年10月29日 ]

      帶參的宏和帶參函數(shù)很相似,但有本質(zhì)上的不同,除上面已談到的各點(diǎn)外,把同一表達(dá)式用函數(shù)處理與用宏處理兩
      者的結(jié)果有可能是不同的。 main(){
      int i=1;
      while(i<=5)
      printf("%d\n",SQ(i++));
      }
      SQ(int y)
      {
      return((y)*(y));
      }#define SQ(y) ((y)*(y))
      main(){
      int i=1;
      while(i<=5)
      printf("%d\n",SQ(i++));
      }
      在上例中函數(shù)名為SQ,形參為 Y,函數(shù)體表達(dá)式為((y)*(y))。在例 9.6中宏名為SQ,形參也為 y,字符串表達(dá)式
      為(y)*(y))。兩例是相同的。例9.6的函數(shù)調(diào)用為SQ(i++),例9.7的宏調(diào)用為SQ(i++),實(shí)參也是相同的。從輸出
      結(jié)果來(lái)看,卻大不相同。分析如下:在例9.6中,函數(shù)調(diào)用是把實(shí)參i值傳給形參y后自增1。然后輸出函數(shù)值。因
      而要循環(huán) 5次。輸出1~5的平方值。而在例9.7中宏調(diào)用時(shí),只作代換。SQ(i++)被代換為((i++)*(i++))。在第一次
      循環(huán)時(shí),由于i等于 1,其計(jì)算過(guò)程為:表達(dá)式中前一個(gè)i初值為1,然后i自增1變?yōu)?,因此表達(dá)式中第2個(gè) i初
      值為2,兩相乘的結(jié)果也為2,然后i值再自增 1,得3。在第二次循環(huán)時(shí),i值已有初值為3,因此表達(dá)式中前一個(gè) i
      為3,后一個(gè)i為4, 乘積為12,然后i再自增1變?yōu)?。進(jìn)入第三次循環(huán),由于i 值已為5,所以這將是最后一次
      循環(huán)。計(jì)算表達(dá)式的值為 5*6等于30。i值再自增 1變?yōu)?6,不再滿足循環(huán)條件,停止循環(huán)。從以上分析可以看出函
      數(shù)調(diào)用和宏調(diào)用二者在形式上相似, 在本質(zhì)上是完全不同的。

      分享到:
      本文糾錯(cuò)】【告訴好友】【打印此文】【返回頂部
      將考試網(wǎng)添加到收藏夾 | 每次上網(wǎng)自動(dòng)訪問(wèn)考試網(wǎng) | 復(fù)制本頁(yè)地址,傳給QQ/MSN上的好友 | 申請(qǐng)鏈接 | 意見留言 TOP
      關(guān)于本站  網(wǎng)站聲明  廣告服務(wù)  聯(lián)系方式  站內(nèi)導(dǎo)航  考試論壇
      Copyright © 2006-2017 中華考試網(wǎng)(Examw.com) All Rights Reserved  營(yíng)業(yè)執(zhí)照