c 問題?求幫助 無法實現形參和實參的結合

2022-09-16 23:50:03 字數 3691 閱讀 5805

1樓:歡樂多

#include

#include

using namespace std;

class book;

book::book(string name,float price,int number):book_name(name),book_price(price),book_number(number){};

book::book():book_name(),book_number(0),book_price(0){};

book p[100]; //同理,無任何意義

void book::fun(string name); //這裡並不是把東西新增到陣列裡面

break;};

cout<<"do you want to continue:"<>a;

break;};

cout<<"which book do you want to search for :"<>name;

book b;

b.fun(name);

return 0;

}整個類設計有非常大的缺陷,建議重新設計類,避免全域性變數,而是再定義乙個類包含book類,在這個類裡面定義查詢函式。

2樓:

你的程式好亂啊 都看不出來 你要幹什麼的

關於乙個c++程式中呼叫函式的實參和形參的問題?

3樓:阿冬

你的**中第三行:

void rowsum(int a[4], int nrow)其中括號裡面的兩個引數a和nrow就是形參,也就是說,在函式定義的時候給出的引數叫做形參。

而在主程式中呼叫該函式的語句:

rowsum(table,3);

其中的table和3就是實參,即,函式呼叫時給出的引數叫做實參。

函式的呼叫過程是把實參的值送給形參,然後由形參在函式內部進行計算。

(table,3)的含義,table是乙個二維陣列(本質上是乙個指向一維陣列的指標)名稱,而3表示行數。

c++引數傳遞的過程中, 對實參和形參的要求是?

4樓:偶孤丹玄代

沒這樣說過的。。形參,不一定從主函式那裡來的。函式間都可以呼叫,就是說,某乙個函式的形參,是來自另乙個函式的實參。

5樓:敖elf鴻

好像是b吧,反正cd不對。定義時形參不佔空間

c++實參和形參判斷題

6樓:匿名使用者

fun(int a)(a += 1);這裡a為形參 int a; 定義乙個變數a,是在記憶體中開闢乙個空間來存放a的值 a = 4; 那麼這個空間裡存放的值為4,它是存在的,即便沒有給a賦值記憶體也給它留了位置當然存放的是個隨即值 而形式引數是不會給它建立空間的而當你把乙個值傳入這個函式:fun(4);這個時候才給a開闢了空間來存放4這個值比如:main()這個時候就把n的值傳給了a 記憶體會給它建立空間存放5這個值,實現這個函式的功能

7樓:成都

不對!引數傳遞分值傳遞和引用傳遞,引用是會改變其值的。

c++中,為什麼形參和實參個數要相同?形參不能被反覆被呼叫嗎?

8樓:

你這樣理解是錯誤的,教材上是指呼叫函式時傳遞的引數數目應該相同!當你多次呼叫函式也是分開多次把實參傳遞給函式的,所以書上寫的也是對的!

但是形參也不一定和實參個數是相同的,例如在c++可以這樣定義函式int max(int x,int y=1)可以這樣呼叫函式

max(2);或者max(2,3);

認真看書,提出疑問是對的!多累積,c++程式設計可以成為一門藝術!當你理解了這句話的時候就能成為高手了!

9樓:蘇州聖愛**

以下為個人見解,長時間不接觸程式設計,可能不是很準確!

呼叫函式的時候,程式將實參的值賦值給形參,從而使得函式中的資料處理能夠進行,如果實參個數和形參不等,則會導致資料無法傳遞,形參的值不能確定,從而函式無法正常執行!

所謂的形參和實參個數相同是指每次呼叫的時候,實參的個數和形參是相同的!而不是從整個程式中來看!

對於函式來說,一般在程式執行的開始時不分配空間的,只是放在函式的堆疊中,等呼叫的時候再具體分配記憶體空間,執行結束記憶體立即釋放。因此,對於c=max(a,b)來說,執行時建立形參x.y的儲存單元,執行完成將值賦值給c後,函式記憶體空間消除,同理d=max(e,f)執行時,建立新的儲存單元x.

y並將e.f的值傳入,執行後將結果賦值給d,函式空間釋放!從每次呼叫來看,函式裡面的實參都是兩個,不違背形參同實參個數相等的約定!

10樓:匿名使用者

樓主沒有理解「形參和實參的型別應相同,個數相同」!

型別應相同這個不用說了吧

當乙個變數被函式呼叫的時候才能稱作實參,而不是說乙個變數在被某個函式呼叫過之後永遠都是那個函式的引數

打個比方:假如乙個學生是班長,當第二年重新選舉時落選了,這時班長就是另乙個人,而他也就不再是班長了

所說引數的個數是指在函式呼叫裡的引數個數,如上max()的實參是兩個,形參也是兩個

其實「形參和實參的型別應相同,個數相同」這句話只是在c語言裡成立,在c++裡不能這麼說,因為c++可以使用預設引數,即實參個數可以少於形參個數

11樓:匿名使用者

同學 你理解錯誤了 形式引數不論在數量還是型別上都應該與其對應的實際引數相匹配! 你上面舉得那個列子同樣也是遵循了這個原理的,你只是在理解的時候出了點小錯。 所謂數量一樣 是指函式在被呼叫的「一次」過程中(重點是被呼叫一次),其實參、形參數量一樣,而不是你上面所說的 乙個函式被呼叫了兩次之後,再加在一起來匹配對比的!

12樓:獵人

你這樣理解就錯了,這裡說的是在一次呼叫過程中,比如還是你那個函式,這樣呼叫就不對了:m=max(a,b,e);

這是所謂的形參與實參個數不同。

你上面說的,那是乙個函式被呼叫了兩次,但它每次都是遵守規則的。

不知道明白了沒有?

c++中實參和形參名字能一樣嗎?比如都是x y

13樓:雨中抬頭

說可以是因為:抄

形參在定義函式的時候就對引數作了定義,而實參是在函式執行的時候,傳給形參中的數值,因此形參和實參的名稱一樣,是完全可以的。(就是說,在函式執行的時候,乙個是變數,乙個是變數的值)

當這種可以是有乙個前提的,就是這個形參不能使全域性變數!另外就是函式裡面不能有和形參相同的變數定義。其實就是變數的作用域問題,覆蓋啊什麼的~

純手打~

14樓:嘦1嫑

可以,只要不是全域性變數,就不會有影響

15樓:匿名使用者

可以,雖然都是xy但是作用域不同

16樓:匿名使用者

可以的了『』『』『』『』

c++形參和實參不相容,在vs2010中呼叫messagebox()函式出現以下錯誤(編碼環境是unicode):

17樓:匿名使用者

你的類是否繼承了mfc的視窗類,它把messagebox重新定義了。

感情,戀愛問題求幫助,感情問題,求幫助!

我感覺 聽你的話好像就是想起她了。不是多麼喜歡阿。要是不是那麼喜歡 不要因為寂寞找女朋友 否則分了對大家都不好 還不如永遠做朋友 要是真的你很喜歡這個女孩 那你連勇氣都沒有?找個機會裝個偶遇 或者 發個資訊投石問路 問問她最近好忙 忙什麼呢 她要是回了 就聊 就請她吃個飯敘敘舊 以後的事 女人都不是...

語文問題求幫助,幾條語文問題

文言文的斷句與標點。因此斷句前先要通讀幾遍,力求對全文的內容有個大體的了解,將能斷開的先斷開,逐步縮小範圍,然後集中精力分析難斷句與上下文的聯絡。在斷句時,還應注意文章的體裁 語言風格 句意的完整與否。標點的使用要合乎規範,和現代漢語標點的用法相同。加強誦讀,增強語感,對斷句標點有很大的幫助。除此之...

C語言問題求解,求C語言問題

include include include void rightmoving char s,int n return t int main 昨天剛幫人家寫 哈哈。你也可以試試這個 include void rightmoving char s,int n result 0 0 if result...