第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

您好,為何程序開頭定義了“bool IsOdd(int );”求解釋?

您好,為何程序開頭定義了“bool IsOdd(int );”求解釋?

慕運(yùn)維8079593 2021-10-06 20:11:13
這是程序,判斷是奇數(shù)還是偶數(shù)。我想知道為何程序開頭要定義“bool IsOdd(int );”,我把這句話去掉,程序就出錯了。#include "stdio.h"#include "iostream"using namespace std;bool IsOdd(int );bool IsEven(int n){if (n==0){return true;}else{return IsOdd(n-1);}}bool IsOdd(int n){return !IsEven(n);}int main(){cout << IsOdd(9);}
查看完整描述

2 回答

?
catspeake

TA貢獻(xiàn)1111條經(jīng)驗(yàn) 獲得超0個贊

開頭的bool IsOdd(int );是函數(shù)的聲明,也就是告訴編譯器說有個函數(shù)叫IsOdd,其參數(shù)是int,返回值是bool。這樣編譯器如果在該函數(shù)的定義之前看到類如IsOdd(n-1)的語句時就知道這是一個函數(shù)調(diào)用,等編譯了IsOdd函數(shù)的定義后再將其函數(shù)地址補(bǔ)回到調(diào)用處。

如果去掉則編譯器在第一次碰到IsOdd(n-1)時就不知道這是什么鬼,所以就報錯了。

不想額外加這一行的辦法是把bool IsOdd(int)的實(shí)現(xiàn)---也就是定義了,放到調(diào)用函數(shù)之前,在你的代碼中就是把main前面的IsOdd整體挪到前面------------囧了個囧, 您這是互相調(diào)用??? 那沒轍了,只能這么寫了。 非互相調(diào)用的,比如a調(diào)用b,但b不調(diào)用a的話,可以先定義b,然后定義a,則無需在a前面再增加函數(shù)聲明; 但如果先定義a則需要在a前面增加b的函數(shù)聲明。

查看完整回答
反對 回復(fù) 2021-10-10
?
藍(lán)山帝景

TA貢獻(xiàn)1843條經(jīng)驗(yàn) 獲得超7個贊

這是函數(shù)的聲明,告訴編譯器這是個函數(shù),定義在其他地方。
因此在IsEven函數(shù)體里可以調(diào)用IsOdd函數(shù)。
如果不寫的話,編譯器不知道IsOdd是什么,因?yàn)镮sOdd寫在IsEven后面,編譯器還沒有對IsOdd進(jìn)行編譯。

查看完整回答
反對 回復(fù) 2021-10-10
  • 2 回答
  • 0 關(guān)注
  • 291 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號