C語言函式呼叫引數傳遞的是什麼,在C語言裡向函式傳遞的是「引數」是什麼意思

2021-05-10 13:28:20 字數 3640 閱讀 5651

1樓:匿名使用者

c語言傳遞的是值而不是地址,這一點從vb轉過來的程式設計師一定要注意。否則不經版

意間就會犯權錯誤。另外下層函式修改上層函式變數不是一種好習慣,容易引發錯誤。c語言中函式可以返回一個函式值,如果你需要返回多個函式值可以用下面的形式

fun(int *a, int *b)

main()

如果按vb的習慣,

fun(int a, int b)

main()

是錯誤的,main中的a,b和fun中的a,b完全是兩碼事,結果就是調運fun沒有任何效果。

在c語言裡向函式傳遞的是「&+引數」是什麼意思??

2樓:匿名使用者

是引用,c++中的概念,int a;int &b=a;這就宣告瞭b是a的引用,經過這樣的宣告後使用a或b的作用相同,都代表同一變數。對變數宣告一個引用,並不另開闢記憶體單元。函式引數傳遞有兩種情況,有一般的將變數名作為引數,這時傳遞給形參的是變數的值,在執行函式的時候,形參的值發生的變化並不傳遞給實參。

傳遞變數的指標,使形參得到一個變數的地址,這時形參指標變數指向實參變數單元。引進引用後,函式引數的第三種傳遞方式就是傳送變數的別名。 代替地址的傳遞,更加簡單

3樓:

c語言裡沒有"&+引數",只有"&引數"——這裡的引數是指變數名或常量。有兩種情況:

當"&引數"前面還有引數(變數或常量)時,&是「按位與"的意思,即將&前後兩個資料的二進位制位對應進行"與"操作,比如3&4就是011&100=0。

當"&引數"前面沒有引數時&是單目運算子,是取&後面變數的地址的意思,這時&後面的引數必須是能夠取地址的目標,否則出錯。比如char a,*p=&a,*q="fjks";正確,而若int *p=&3;則錯誤,因為立即數常量3沒有地址。

4樓:匿名使用者

一個型別前面加&就是指取其地址

不過像您這個例子的話,我個人感覺也是*sqlist.如果沒有特殊情況的話.

c語言中的傳值呼叫時什麼意思呀?

5樓:文化廚子

在c語言中每bai一個du變數都有兩個屬zhi性一個是值,一個dao是址。比如

int a = 2;

變數a的值是內2,變數a的地

容址,可以用&取地址操作符獲取,即&a。

因此以c語言的函式傳遞中具備兩種方式傳遞引數,一種是傳址,一種傳值。比如

void f1(int v) //函式f1void f2(int *p) //函式f2f1(a) ; //這裡傳值

f2(&a) //這是傳址

6樓:匿名使用者

主調函式只是把實參的值傳遞給了形參,也就是說在被調函式執行期間形參的那個記憶體單元裡邊的值等於形參的值,你在被調函式裡邊對形參的那個記憶體單元的任何操作都不會影響主調函式裡邊那個實參的記憶體單元。

7樓:匿名使用者

「在c語言抄中,所有的函式引數都是「通過值」傳遞的」,這句話有問題還有個「引用傳遞」,值傳遞只是呼叫時把引數的值傳給呼叫者,雖然在方法中對值進行了修改,但是不影響變數然來的值;重點是「引用傳遞」把引數傳給呼叫者的是地址,也可以說是變數物件的引用,而不是值,一旦改變值就改變了

8樓:八神97坤

都是採用

bai的值傳遞,比如void add(int a,int b);這是一個函式du,如果你在zhi主函式中

dao這專樣呼叫的話,a =5,b =4,add(a,b),隨便你在add中怎麼改變a、b的值,主屬函式中的a、b的值始終不變,如果希望呼叫函式改變主函式中的值,那傳的值應該是地址

9樓:

比如du說,你寫了個函zhi數void swap(int a,int b)用於將2個整形變dao量互換.現在你在主函式中內定義整形變數x和y, 然後你想要通過這個函式將x和y的值進行互換,就呼叫了swap(x,y).這裡注意了,這裡只是將x和y的值付給了a和b,然容後將a和b的值互換,實際上x和y的值並沒有互換。

這就是傳值呼叫將值放在臨時變數的意義。

10樓:萬海里尋夫

值傳遞就是這樣,舉個例子:

void fun(int a, int b);

int main()

11樓:匿名使用者

值傳遞 就是傳遞給函式的是變數的一個拷貝 而不是真正的變數本身 這樣的操作不會對傳遞的變數進行修改 只會修改變數的拷貝

12樓:匿名使用者

自傳遞的意思是當這個變數在函式內變化時,不改變原來的值,例如回int change(int i)

void main()

你會發現,呼叫函式時答,a的值傳遞給i,i是一個新的臨時變數,在函式裡面,i的值變為2,但是函式結束後a的值並沒有發生變化,b的值為2,函式將結果返回到b,然後釋放i所在的空間

13樓:匿名使用者

c語言函式

呼叫bai有兩種方式,du一是傳值呼叫,zhi二是傳地址調dao用。

當傳值調版用時,只是把原變數

權拷貝一份給函式引數,就像你拷貝了一份檔案,然後修改了這個拷貝的檔案,對原檔案是沒有影響的,所以傳值呼叫不影響原來的變數。

而傳地址呼叫則是傳原變數的地址,通過指標實現,也就是參變數指標和原變數指標同時指向一個記憶體區,可見,參變數改變了該地址的內容,相應原變數所指的內容也改變了。程式設計很好玩,學好c語言是關鍵,c語言最難理解是指標,但只要喜歡,不畏懼,沒什麼難的,lz加油哦

14樓:萬海里尋夫

值傳遞就是這樣,

bai舉個例子:

void fun(int a, int b);

int main()

c語言函式呼叫時,實參和形參是如何傳遞的?什麼時候要寫指標型變數?求高手指點~

15樓:匿名使用者

形參bai在函式定義時表示的du一種佔位符zhi,實參就是裡面存有實際變數dao值或者版

常量,函式呼叫時,實參權值會自動傳遞給形參變數。指標比較複雜了。是變數的地址,如果引數型別是指標型別,則必須把實參變數的地址傳遞過去。當然在函式內也是間接引用實參變數的。

比如void f(int * p) //形參是指標型別變數下面是呼叫形式

f(&a); //呼叫函式,實參是變數a的地址。

16樓:孟於清

比如void main(void)是形參···· void main(unsigned int m)是實參

17樓:jyw金

回答:1.傳值呼叫,形參是實參的一個拷貝,形參和實參不是同一個儲存單元。

2.傳地址呼叫,將實參的地址傳給形參,形參和實參操作同一儲存單元。

18樓:巢秀榮容子

這程式是你寫的嗎?

要是你寫的話

你就看下面的三段話

就能找出。

1.比如你定義一個函式專void

add(int

a,int

b),這裡的屬a和b就是形參。

2.當你進行函式呼叫的時候,add(1,

2),這裡的1和2就是實參。

3.形參就是沒有賦值的變數,實參就是有賦值的變數

C語言傳遞函式指標引數能否傳遞NULL

可以,但子函式中要謹慎處理,不然會出問題,如int fun int p void main 經常用到的time null 也是傳null指標的一個應用。能,引數能作為判斷 讀取資料來用,傳null完全沒有問題。而且在c 圖形程式設計中這種用法很廣泛 c語言函式宣告中將函式指標引數設定為null的預設...

webservice呼叫的時候傳遞引數傳值為null為

你把 call.invoke new object 裡面的引數new object 去掉試試,不行的話改為 a,b,c,d 再試試,還不行的話我就不知道了。call.addparameter a,xmltype.xsd string,parametermode.in call.addparamete...

c語言呼叫函式輸出fibonacci數列的m項至n項我

n 1 n 2的 時候才會給前兩項賦值?請仔細思考一下初始條件.貼一個我的fib int 函式專.int fib int n return b q item1 item1 item2 括號裡的去掉 c語言 採用遞迴呼叫函式方法計算fibonacci數列的前20項 include include lo...