不一定
目前創(chuàng)新互聯(lián)已為上1000家的企業(yè)提供了網(wǎng)站建設、域名、虛擬主機、網(wǎng)站托管維護、企業(yè)網(wǎng)站設計、銅鼓網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
但是C語言的源程序在執(zhí)行時,固定都是從全局main函數(shù)開始,并從全局main函數(shù)結(jié)束。因此,自定義的函數(shù)如果要被執(zhí)行,必須有一條能夠從main函數(shù)到這個自定義函數(shù)的調(diào)用路徑。
比如說,你自定義了函數(shù)A和函數(shù)B,其中函數(shù)B在函數(shù)A中有調(diào)用,但不在全局main函數(shù)中調(diào)用,那只需要在全局main函數(shù)中調(diào)用函數(shù)A,函數(shù)B就會在執(zhí)行到函數(shù)A調(diào)用函數(shù)B的部分時執(zhí)行
示例
#includestdio.h
void?B(){
printf("我是函數(shù)B\n");
}
void?A(){
B();
printf("我是函數(shù)A\n");
}
main(){
printf("main函數(shù)執(zhí)行開始\n");
A();
printf("main函數(shù)執(zhí)行完畢\n");
}
運行結(jié)果:
main函數(shù)執(zhí)行開始
我是函數(shù)B
我是函數(shù)A
main函數(shù)執(zhí)行完畢
(按任意鍵)
其實是這樣的,對于函數(shù)定義和調(diào)用,如果你需要用這樣功能的函數(shù),如果庫函數(shù)里面沒有,那么就需要你自己去定義和調(diào)用了,如果函數(shù)的定義是在函數(shù)調(diào)用的前面,那么就不需要函數(shù)聲明,反之就需要函數(shù)聲明,如果你在源文件中定義了一個函數(shù),但沒有調(diào)用,也沒有關(guān)系的,就好比,你東西買好了,但不一定要現(xiàn)在就用,當你需要的時候再用,當然也可以當你需要時再買,希望對你有幫助!
我剛?cè)腴T的時候也是這樣想的,哈哈。
但是隨著你學的深入,你會知道指針才是c語言的靈魂。
用函數(shù)交換變量,如果不用指針的話,是無法進行的,因為函數(shù)只能改變形參,而對于主函數(shù)的實參,是沒有交換作用的(這里得好好想想,初學可能會糊涂的點就在這)
指針的作用很多的,下面是我上課做的一些筆記,你可以看看。
有什么問題再追問我哦~
指針的重要性
表示一些復雜的數(shù)據(jù)結(jié)構(gòu)
快速的傳遞數(shù)據(jù),減少內(nèi)存的耗用
使函數(shù)返回一個以上的值
能直接訪問硬件
能夠方便地處理字符串
是理解面向?qū)ο笳Z言中引用的基礎(chǔ)
總結(jié):指針是c語言的靈魂
函數(shù)的調(diào)用必須是已知文件名的。如果你寫一個系統(tǒng)的某一層,不知道其他層的內(nèi)部情況,這時候用指針傳遞函數(shù)最合適。還有,結(jié)構(gòu)體里包含指向函數(shù)的指針,就相當于一個簡單的“對象”了。
看看linux內(nèi)核里各接口的定義。函數(shù)指針的使用使的內(nèi)核可以很多人同時開發(fā),并且大家只需要知道相應的接口就可以了。這套框架,離不開函數(shù)指針。
方法一、
double traingle_area(double a,double b,double c){
if(a+blt;c||a+clt;b||c+blt;a){
//不是三角形
return-1;
}
double p=(a+b+c)/2.0;
return sqrt(p*(p-a)*(p-b)*(p-c));
}
方法二、
#includelt;iostreamgt;
#includelt;cmathgt;
using namespace std;
double triangel_area(double a,double b,double c);
int main()
{
double a,b,c;
\x09cingt;gt;agt;gt;bgt;gt;c;
\x09coutlt;lt;triangel_area(a,b,c)lt;lt;endl;
\x09return 0;
}
double triangel_area(double a,double b,double c)
{
\x09if(a+bgt;c||a+cgt;b||b+cgt;a)
\x09{
\x09 double p=(a+b+c)/2;
\x09\x09return sqrt(p*(p-a)*(p-b)*(p-c));
\x09}
\x09return 0.0;
}
擴展資料:
include用法:
#include命令預處理命令的一種,預處理命令可以將別的源代碼內(nèi)容插入到所指定的位置;可以標識出只有在特定條件下才會被編譯的某一段程序代碼;可以定義類似標識符功能的宏,在編譯時,預處理器會用別的文本取代該宏。
插入頭文件的內(nèi)容
#include命令告訴預處理器將指定頭文件的內(nèi)容插入到預處理器命令的相應位置。有兩種方式可以指定插入頭文件:
1、#includelt;文件名gt;
2、#include"文件名"