亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

C++中怎么調用函數?

C++中怎么調用函數?

C++
LEATH 2019-05-31 03:02:37
#include <iostream>using namespace std;void *v;void *hello(){cout << "hello world!" << endl;return v;}void main(){void *p;p=hello();p;//這里為什么樣不輸入hello world呀?}詳細幫我講下關于函數調用問題,謝謝!!
查看完整描述

4 回答

?
SMILET

TA貢獻1796條經驗 獲得超4個贊

void *p;它定義的不是指向void函數的指針,而是無類型指針

在C語言中規定,一個函數總是占用一段連續的內存區, 而函數名就是該函數所占內存區的首地址。 我們可以把函數的這個首地址(或稱入口地址)賦予一個指針變量, 使該指針變量指向該函數。然后通過指針變量就可以找到并調用這個函數。 我們把這種指向函數的指針變量稱為“函數指針變量”。
函數指針變量定義的一般形式為:
類型說明符 (*指針變量名)();
其中“類型說明符”表示被指函數的返回值的類型。“(* 指針變量名)”表示“*”后面的變量是定義的指針變量。 最后的空括號表示指針變量所指的是一個函數。

所以你要改成
#include <iostream>
using namespace std;
void *v;
void *hello(){
cout << "hello world!" << endl;
return v;
}

void main(){
void *( *p)();
p=hello;
p();//這里為什么樣不輸入hello world呀?
}

我很疑惑,hello函數為什么要返回一個全局無類型指針變量
其實則樣就可以
#include <iostream>
using namespace std;

void hello(){
cout << "hello world!" << endl;

}

int main(){
hello();
return 0;
}
不過如果你用的是Dev-c++就不行,它不支持void類型函數



查看完整回答
反對 回復 2019-06-01
?
鴻蒙傳說

TA貢獻1865條經驗 獲得超7個贊

#include <iostream>
using namespace std;

void *hello(){
cout << "hello world!" << endl;
return 0;
}

int main(){
hello();
return 0;
}
hello這個函數可以直接輸入,沒有必要將它再賦給一個指針P,而且你定義的那個指針v我也不知道它是干嘛用的,類型還是void類型,很奇怪啊,void一般是定義函數類型,而不是定義變量類型的




查看完整回答
反對 回復 2019-06-01
?
慕碼人8056858

TA貢獻1803條經驗 獲得超6個贊

按照函數定義去調用就可以了。
實例:#include <iostream>
using namespace std;
void printstar(void)
{
cout<<"**********star****************"<<endl;
}

void print_message(void)
{
cout<<"Hello World!"<<endl;
}

int main(void)
{
printstar();//調用
print_message();//調用
printstar();//調用
return 0;
}






查看完整回答
反對 回復 2019-06-01
?
慕容森

TA貢獻1853條經驗 獲得超18個贊


1.對于C++,所有程序都要有包含main()函數,它是程序的入口點。
2.main()函數中調用其它函數。
3.函數中也可以調用函數。


查看完整回答
反對 回復 2019-06-01
  • 4 回答
  • 0 關注
  • 396 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號