為什麼我學的c語言在定義main函式時,前面沒有

時間 2021-08-30 11:19:48

1樓:一頁凌風

樓上說法有些錯誤。首先,mian函式作為主函式是程式的入口沒錯,但是它其實一定要被其他函式呼叫的,這些函式就是進入程式之前的引導。所以,有的時候,我們會發int返回值的main函式內不甚至用了引數,這些引數也是可以預設的,但實際上都被預設值了,引導程式在呼叫main函式的時候必須獲取這些值,否則是不可以動作的。

在vc6.0編譯環境中,main的預設返回型別是int,所以可以省略void不寫,形成樓主那樣。同理老式c編譯器中預設main是void型,也可以省略int不寫,形成樓主看到的那樣。

但是實際上,void也好,int也好,只要不出現錯誤,都是預設要返回給系統程式乙個值,以便讓系統知道這個程式的執**況的。系統會隨時檢測這個程式,實質上就是main函式是否處於乙個正常的狀態。

這才是main的實質。

從以上可以看出,main的返回型別可以不寫,不同編譯器對它的解釋是不一樣的,有的是int型,有的void型。所以乾脆直接不寫,在實際編譯環境中實際定義。

2樓:匿名使用者

乙個函式有返回值通常是因為該值要被其他函式使用,而main函式作為主函式,基本不存在這種情況。所以,main函式也可以用無返回值的定義,下面對main函式的定義都是對的:

int main(void); // same as aboveint main(int argc,char** argv);

void main();

void main(int argc, char** argv);

初學c時,通常看到的是第三種方式,並且void也取消了,因為這是預設的定義。

c語言中在主函式main前的加不加int有什麼區別啊?

3樓:匿名使用者

可以說加不加來int是沒有區別的

源。在ansi c的標準中,baimain的標準返回值du是整型,如果你zhi什麼都沒有dao加,編譯系統會自動加上int型別的。這時如果你使用gcc的話(vc是沒有的)會有乙個警告。

void是無型別,表示沒有返回值,你的主函式如果不需要返回的話,最好加上它。

最後,建議你的主函式顯式的使用int型別,並return 0;這是乙個好習慣,開始的時候沒什麼用,時間長了才能看出來。

4樓:匿名使用者

int 返回型別,如果你main函式中return 數字;

而你前面寫的是void ,那麼會報錯;

5樓:匿名使用者

據我所知,main函式是c語言程式中唯一的主函式,前不能名int.

void是表示無返回值,可以不加

c語言中main有什麼作用呢?書中說一定要有主函式,是為什麼?還有int必須加在main前嗎?

6樓:周黃根

因為程式執行是從main函式開始的,乙個函式格式

函式型別 函式名(函式形參,)

7樓:逍遙公升

main之前不一定是int,void也可以的。

學C語言要不要英語? 為什麼要學習C語言?

要的 因為,c語言中,一些變數若是有一定意義的,就最好用相應的英文作為其變數名,另外,在程式除錯的時候,若是有錯誤,它的提示也是用英文的,所以懂的英文才能看懂程式的錯誤提示,方便對程式進行修改。至於是否要很強,不知道你強的概念是什麼,至少一些基本的單詞你要會,能看懂編譯是提醒你的語句就行了。其實不用...

為什麼c語言中定義a的陣列,我依然能看到a

那是給陣列最後乙個元素後一記憶體位址的數字,值是上次使用該記憶體位址的程式寫入的 與陣列沒有關係 關於c語言陣列的問題,為啥第4行的是a 11 填a 10 可以麼?求高人指點,有什麼區別 第四行填10也是可以的,但是你的程式在編寫的時候是申請了11個空間來用的即 a 0 a 10 但是程式為了操作方...

在c語言中3 2為什麼等於,在c語言中3 2為什麼等於0

因為編譯時候沒法知道其是什麼型別的數,所以可以稍微改一下,在3和2後面加一個小數點 include main l語言之父 因為3預設的是int型的常量,所以3 2的輸出結果為了與被除數一致就輸出0 0.5進行int型別轉換後就變成了0 這裡需要注意的就是c語言除法中,結果的資料型別是會轉換成被除數的...