在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

函數參數傳遞的原理

PoisonApple ? 來源:網絡整理 ? 2018-03-02 11:41 ? 次閱讀

參數傳遞,是在程序運行過程中,實際參數就會將參數值傳遞給相應的形式參數,然后在函數中實現對數據處理和返回的過程,方法有按值傳遞參數,按地址傳遞參數和按數組傳遞參數。

形參:指出現在Sub 和Function過程形參表中的變量名、數組名,該過程在被調用前,沒有為它們分配內存,其作用是說明自變量的類型和形態以及在過程中的作用。形參可以是除定長字符串變量之外的合法變量名,也可以帶括號的數組名。

實參:實參就是在調用Sub 和Function過程時,從主調過程傳遞給被調用過程的參數值。實參可以是變量名、數組名、常數或表達式。在過程調用傳遞參數時,形參與實參是按位置結合的,形參表和實參表中對應的變量名可以不必相同,但它們的數據類型、參數個數及位置必須一一對應。

函數參數傳遞的原理

等號、函數名稱、括弧和參數,是函數的四個組成部分。

函數“=SUM(1,2,3)”,1、2和3就是SUM函數的參數,沒有參數1、2、3,函數SUM則無從求值。

函數“=VLOOKUP(2,A:C,3,)”,沒有參數2、A:C和3,函數VLOOKUP如何在A:C區域查找A列中是2那一行第3列的數值?

當然,也有不需要參數的函數,如“=PI()”、“=NOW()”、“TODAY()”等。

函數參數傳遞的原理

C語言中參數的傳遞方式一般存在兩種方式:一種是通過棧的形式傳遞,另一種是通過寄存器的方式傳遞的。這次,我們只是詳細描述一下第一種參數傳遞方式,另外一種方式在這里不做詳細介紹。

首先,我們看一下,下面一個簡單的調用例程:

int Add (int a, int b, int c)

{

return a+b+c;

}

void main()

{

int x =0 , y = 1, z = 2;

int result = 0;

result = Add(x, y, z);

printf(“Result for x+y+z %d”, result);

}

借助以上例程,我們具體看一下,參數是如何傳遞的。首先,我們了解一個知識點,就是“()”操作符在C語言中有很多含義,比如說,結合符、函數調用符等。那么在result = Add(x,y,z)語句中當然為函數調用符,因此在編譯階段,遇到函數調用符后的執行序為,從最后一個參數開始壓棧,壓棧順序為z-》y-》x, 直到將全部的參數壓到調用棧中,然后call到Add對應的函數地址開始執行。那么壓棧執行完成后,棧空間,從上到下依次的順序為x-》y-》z(因為棧的生長方向為向上,即地址低的地方,因此,x在地址最低的地方,即棧頂)。因此,在被調用函數中參數的讀取和操作也都是發生在棧中的。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 函數
    +關注

    關注

    3

    文章

    4331

    瀏覽量

    62622
收藏 人收藏

    評論

    相關推薦

    二維數組作為函數參數傳遞在實際中的應用

    由于表達式中的數組名data可以被解釋為指針,即data的類型為指向int [2]的指針類型int (*)[2],因此必須將pData聲明為與之匹配的類型,data才能作為實參傳遞
    的頭像 發表于 12-20 07:19 ?6587次閱讀

    #硬聲創作季 計算機基礎:函數參數傳遞

    計算機基礎
    Mr_haohao
    發布于 :2022年11月03日 08:40:43

    [3.3.1]--函數參數傳遞1

    PHPPHP開發
    jf_75936199
    發布于 :2023年03月13日 10:23:51

    [3.3.2]--函數參數傳遞2

    PHPPHP開發
    jf_75936199
    發布于 :2023年03月13日 10:24:32

    函數參數傳遞(1)#程序設計基礎

    程序設計
    學習硬聲知識
    發布于 :2023年05月30日 13:00:32

    函數參數傳遞(2)#程序設計基礎

    程序設計
    學習硬聲知識
    發布于 :2023年05月30日 13:01:16

    函數參數傳遞#Python

    程序函數python
    未來加油dz
    發布于 :2023年08月26日 23:41:38

     函數參數傳遞(1)#Python

    程序語言代碼python
    未來加油dz
    發布于 :2023年08月30日 19:12:53

     函數參數傳遞(2)#Python

    程序語言代碼python
    未來加油dz
    發布于 :2023年08月30日 19:13:56

    keil 變量xdata函數參數傳遞

    char a).當aa作為參數傳到函數bb,用a來接收的時候,區域進行了改變,區域不同,是否會出現問題?函數bb里面,用的也是unsigned char xdata b來接收a的值。從存儲空間里面來看,從
    發表于 03-03 10:34

    怎么將函數參數傳遞給內聯ASM

    這是怎么做到的?常規的asm指令編譯文件,但我從來沒有實現對函數外部聲明的函數參數或變量的訪問。我已經研究了一段時間,但我不是很清楚。什么是正確的合成函數?當做
    發表于 09-29 09:22

    為什么調用C的函數參數傳遞的往往是傳值?

    ; swap(x,y); printf("%d,%d\n",x,y);}用這個swap函數,并不能將x,y的值對換,因為函數是值傳遞,請大家幫忙怎么理解這個程序,打不開思路了。
    發表于 11-08 04:35

    函數參數傳遞出現錯誤

    定義一個函數 void test(IDINT8U TpmNum, IDINT8U ChVal, IDINT16U ChalNum);并在程序中進行調用。結果通過設置斷點看到最后一個參數的值總是傳遞
    發表于 04-16 21:51

    函數參數傳遞總是出錯怎么辦

    函數參數傳遞總是出錯,怎么辦啊??可能會是什么原因?
    發表于 07-19 08:00

    單片機的本質函數參數傳遞詳細資料說明

    本文檔的主要內容詳細介紹的是單片機的本質函數參數傳遞詳細資料說明。
    發表于 07-16 17:39 ?1次下載
    單片機的本質<b class='flag-5'>函數</b><b class='flag-5'>參數</b><b class='flag-5'>傳遞</b>詳細資料說明
    主站蜘蛛池模板: 天天躁狠狠躁| 午夜神马福利影院| 国产拍拍视频| 成年啪啪网站免费播放看| 波多野结衣在线观看一区二区三区| 男人资源站| 日本人69xxx| 日本亚洲视频| 亚洲三级小视频| xxxx日本老师hd| 屁股趴过来欠打高h| 一区二区三区四区精品| 特级黄毛片| 欧美日韩中文字幕在线| 久精品在线观看| 一级黄色片在线看| 久操视频免费| 亚洲一区高清| 亚洲成人观看| 免费播放特黄特色毛片| 国产成人99久久亚洲综合精品| 天天看毛片| 免费又黄又硬又大爽日本| 黄免费网站| 日本免费观看网站| 国产你懂| 婷婷 色天使| 日日噜噜夜夜狠狠tv视频免费| 九九九精品| 福利区在线观看| 高h乱肉辣文辣书阁| 欧美日韩高清一本大道免费| 俺去啦最新网址| 亚洲人成一区| 日本理论在线| 噜噜噜动态图超猛烈| 美女扒开下面让男人捅| 日本黄大片在线观看| 夜夜爽一区二区三区精品| 亚洲精品欧洲久久婷婷99| 狠狠婷婷|