① 關於c語言調用主函數的問題
一.在c中內存分為這幾個存儲區
1.棧 - 有編譯器自動分配釋放
2.堆 - 一般由程序員分配釋放,若程序員不釋放,程序結束時可能由OS回收
3.全局區(靜態區),全局變數和靜態變數的存儲是放在一塊的,初始化的全局變數和靜態變數在一塊區域,未初始化的全局變數和未初始化的靜態變數在相鄰的>另一塊區域。- 程序結束釋放
4.另外還有一個專門放常量的地方。 - 程序結束釋放
main函數是程序的入口點,main有自己的堆棧 頻繁的調用主函數,會進入死循環,最後死掉,因為main()函數是死循環的 是沒有返回的
直接調用main主函數是允許的,只是要注意函數返回的條件,防止進入死循環。但是絕不提倡。
② c語言中主函數調用問題,請用通俗易懂的話語幫我講解一下,在主函數中怎麼調用其他函數,或者說怎麼寫主
自創函數
C語言提供了大量的庫函數(右側資料下載中有),比如stdio.h提供輸出函數,但是還是滿足不了我們開發中的一些邏輯,所以這個時候需要自己定義函數,自定義函數的一般形式:
注意:
1、[]包含的內容可以省略,數據類型說明省略,默認是int類型函數;參數省略表示該函數是無參函數,參數不省略表示該函數是有參函數;
2、函數名稱遵循標識符命名規范;
3、自定義函數盡量放在main函數之前,如果要放在main函數後面的話,需要在main函數之前先聲明自定義函數,聲明格式為:[數據類型說明] 函數名稱([參數]);
那現在我們就自定義一個sayHello()函數:
③ C語言中函數怎麼自己調用自己
一,函數調用的一般形式為:
函數名(實參列表);
實參可以是常數、變數、表達式等,多個實參用逗號,分隔。
在c語言中,函數調用的方式有多種,例如:
在函數調用中還應該注意的一個問題是求值順序的問題。所謂求值順序是指對實參列表中各個參數是自左向右使用呢,還是自右向左使用。對此,各系統的規定不一定相同。
【示例】在vc6.0下運行以下代碼。
運行結果:
8
7
6
7
可見vc
6.0是按照從右至左的順序求值。如果按照從左至右求值,結果應為:
9
10
9
8
函數的嵌套調用
函數不能嵌套定義,但可以嵌套調用,也就是在一個函數的定義中出現對另一個函數的調用。這樣就出現了函數的嵌套調用,即在被調函數中又調用其它函數。
【示例】計算sum
=
1!
+
2!
+
3!
+
...
+
(n-1)!
+
n!
分析:可以編寫兩個函數,一個用來計算階乘,一個用來計算累加的和。
#include
//求階乘
long
factorial(int
n){
int
i;
long
result=1;
for(i=1;
i<=n;
i++){
result
*=
n;
}
return
result;
}
//
求累加的和
long
sum(long
n){
int
i;
long
result
=
0;
for(i=1;
i<=n;
i++){
//嵌套調用
result
+=
factorial(n);
}
return
result;
}
int
main(){
printf("1!+2!+...+9!+10!
=
%ld\n",
sum(10));
return
0;
}
二,有些自定義函數可能會被頻繁的調用,所以寫在一個c文件里是不太方便的。應該把這些自定義的函數寫在一個c文件里,同時在一個頭文件.h文件里聲明。主函數可以通過引用該頭文件然後調用需要的自定義函數。
1,舉例:在頭文件(.h)里聲明自定義函數
2,在一個c語言文件里寫下自定義函數的實現
3,在主函數中調用自定義函數
4,最後編譯所有的涉及到的c文件,頭文件可以不管
④ 一個c語言程序的執行總是從該函數的main開始,在main函數最後結束
main()函數稱之為主函數,一個C程序總是從main()函數開始執行的,但是不一定在main函數最後結束。
在 main() 之後的最後一條語句結束後,程序還要運行一些代碼,以正常返回操作系統。main函數執行完後還執行其他語句,
有時候需要有一種與程序退出方式無關的方法來進行程序退出時的必要處理,方法就是用atexit()函數來注冊程序正常終止時要被調用的函數,atexit()函數的參數是一個函數指針,函數指針指向一個沒有參數也沒有返回值的函數,它的原型是:
int atexit(void (*)(void));
(4)主函數調用自己該怎麼停止c語言擴展閱讀
main函數的使用
示例:
#include <stdlib.h>
#include <stdio.h>
void fn1(void);
void fn2(void);
int main(void)
{
atexit(fn1);
atexit(fn2);
printf("main exit ... ");
return 0;
}
void fn1()
{
printf("calling fn1()... ");
}
void fn2()
{
printf("calling fn2()... ");
}
⑤ c語言 怎麼停止調用循環 退回主程序
你用tc 的話用while(!kbhit()),這表示沒有按鍵時一直循環
可bioskey()
⑥ C語言問題在自定義函數里調用main函數後如何讓程序流停止,void exit(int retval)該如何使用 請高手指點
直接exit(0);就行了 retval是程序退出的返回值 0表示程序是正常結束的
⑦ c語言中主函數能調用自己嗎
主函數不能調用自己。
主函數實際上是有參函數,從操作系統傳入變數,結束時有數值返回操作系統。
int main(int argc, char *argv[]){
return 0;
}
其中:
int argc, char *argv[] 從操作系統傳入
return 0; 返回操作系統
如果你的數據不需要同操作系統發生關系,你可以寫成自定義函數,主函數里就一個語句--調用這個自定義函數。
⑧ C語言中調用什麼函數能停止輸出和繼續輸出
pause讓進程暫停直到信號出現
,暫停就加一句pause();
還是說你想讓程序終止,在printf("111111");後面加個return,就表示結束該函數,返回主函數中去了!
⑨ 請問C語言中怎樣結束主函數的運行
給你兩種方法
(1)return法
如果main函數沒有返回值,則
return;有則返回相應類型的值即可
(2)ctr+Z或者ctr+D,前者為微軟操作系統,後者是Unix系統中停止程序的運行
⑩ C語言怎樣使被調函數停止一段時間,主函數繼續
那就只有多線程了,單線程是不可能實現這種功能的。
單線程的運行就是線性的,A函數調用B函數,B函數不執行return語句,A函數不可能再繼續執行。