1樓:網友
vfp中引數傳遞有兩種,當實參是常量、表示式、用括號括起來的變數時屬於值傳遞,傳遞方向是單向的,即只從父程式傳給子程式;當實參是變數(不用括號括起來)時屬於位址傳遞,傳遞方向是雙向的,即父程式中實參與子程式中的形參其實在記憶體中佔同乙個位址單元,故值是相同的,所以即可以從父程式傳到子程式,當返回主程式時也能將值從子程式再傳回父程式。
c語言函式呼叫實參到形參傳遞的是值,那位址是怎麼傳遞的?
2樓:網友
首先,是實參呼叫形參。你說的位址傳遞其實和值傳遞差不多。比如max( &a, &b );這是實參int max( int *p, int *p2 )這是形參。
比如實參,&a和&b都是取a和b的位址,又因為max()函式的形參是*p和*p2( *p和*p2被宣告為整型的指標 ),因為指標是存位址的,所以把a和b的位址賦給p和p2.下面是乙個把a和b的值交換的程式。/*
*************************=程式名。
#include int max( int *p, int *p2 );/* 宣告函式 */ int main( void )int max( int *p, int *p2 )
函式呼叫時實參是位址值,形參不是指標變數而是陣列,這樣的話乙個是位址乙個是元素,進行值傳遞怎樣理解
3樓:匿名使用者
這是兩種函式引數傳遞方法:1,你開始學的是值傳遞,即形參把實參的值複製過去,他們根本上是兩個不一樣的變數,只是值相同而已,所以對形參的任何操作不影響實參。2,陣列名是陣列首元素的位址,這是指標傳遞,把陣列的位址傳了過去,自定義函式拿到位址對陣列進行操作,將影響這個陣列。
注意這裡沒有複製,而是間接訪問陣列本身)
c裡面將實引數組的首位址傳遞給形參,形參接收到以後,對形參的操作就是對實參的操作怎麼理解
4樓:滑稽隊長
因為你是傳遞陣列的指標,修改的是記憶體的真實資料,操作的是實參的真實值。你知道第乙個位址,比如陣列是int型的,而int型佔4個位元組,下乙個元素的位址就是上乙個元素的位址+4個位元組的單位,這就是為什麼陣列的指標變數要定義型別。你知道了陣列第乙個元素的位址,知道陣列的元素個數和型別就能推知每乙個元素的位址。
所以指標在c中的使用是非常靈活高效的。
什麼是按值傳遞,什麼是按位址傳遞?
5樓:匿名使用者
除非另作說明,否則按位址傳遞引數。也就是說傳遞的是變數再記憶體中位址的指標或引用。
按值: 一種將引數值而不是將位址傳遞給過程的方式,這就使過程訪問到變數的複本。結果,過程不可改變變數的真正值。也就是說傳遞的是變數的內容。
vb在定義過程時,形參按位址傳遞,在呼叫過程時 與之對應的 實參只能按位址傳遞 這句話為什麼錯?
6樓:網友
按位址傳遞引數使過程用變數的記憶體位址去訪問實際變數的內容。結果,將變數傳遞給過程時,通過過程可永遠改變變數值。按位址傳遞引數在 visual basic 中是預設的。
如果給按位址傳遞引數指定資料型別,就必須將這種型別的值傳給引數。可以給引數傳遞乙個表示式,而不是資料型別。visual basic 計算表示式,如果可能的話,還會按要求的型別將值傳遞給引數。
這就是說,當型別不匹配時,vb會按值傳遞經過型別轉換的值,而不是按位址傳遞。
7樓:匿名使用者
傳值 傳址。
另外,站長團上有產品**,便宜***。
已知某位址塊中的位址是140120842420試
140.120.84.24 140.120.01010100 24 最小位址是140.120.01010000 0 20 80 最大的位址是140.120.01011111 255 20 95 位址掩碼是 255.255.240.0 共有2 12 4096個位址,相當於16個c類位址。已知某位址塊中...
c語言中怎麼理解字串常量給出的是位址值
c中字串實際上是字元陣列,通過指標位址來操作,所以其實定義的是指標 給出字串的定義 字串是以空字元結尾的char型陣列 再給出字串常量的定義 字串常量又稱為字串文字,是指位於一對雙引號中的任何字元。雙引號裡面的字元加上編譯器自動提供的結束標誌 0字元,作為乙個字串被存在陣列當中。那麼怎麼理解 字串常...
怎麼理解高數中的極限概念,怎麼理解高數中的極限概念
極限的概念最好先從數列的角度入手會比較容易接受,比如劉徽的割圓術,用圓的內接正n邊形的面積近似圓的面積,當n取不同值時就可以得到相應的一列數,而這列數的極限即為圓的面積。又如一尺之鎚,日取其半,萬世不竭等現實的例子。然後,要真正掌握極限的概念,還是要把它抽象成數學符號的語言來理解,再加以影象幫助,應...