c語言編譯中main怎麼輸入
⑴ c語言如何傳給main函數實參
例如,你編譯連接後得到可執行文件名為main.exe
它的源文件如下:
#include "stdafx.h"
int main(int argc, char* argv[])
{
for (int i=0;i<argc;i++)
printf("%s\n",argv[i]);
return 0;
}
運行的時候可以這樣:
在開始->運行中輸入cmd,啟動命令行,進入到main.exe所在的目錄,這時用dir命令可以看到這個文件.如果看不到,則說明當前目錄還不是可執行文件所在的目錄,需要更改,用命令cd進行切換.或者設置一下環境變數.
然後,輸入,main.exe this is a test for main.
如果成功的話,就會輸出.
main
this
is
a
test
for
main
至於,你要將實參傳給main,可以這樣實現.
另外寫一個控制台程序,傳實參以調用剛才的可執行文件.如:
#include "stdafx.h"
#include "windows.h"
int main(int argc, char* argv[])
{
WinExec("main this is a test for main",SW_SHOWNORMAL);
return 0;
}
如上所示,這個程序就是調用main.exe,並傳一個字元串給它,this is a test for main.
在命令行中直接輸入相應的可執行文件就行了,不需要再傳實參了.
如果在C#中,就要參考一下Process這個類了.
⑵ C語言中的main()函數
一、定義
main函數,又稱主函數,是程序執行的起點,main是相對來說的,如同音學理論之主調於泛音,泛音即程序中的除main之外的其他函數,迎合人們的思考方式而生成的而非必定的模式.有主有次,執行起來條清縷析,既可將程序模塊化又實現了一個閉合的整體。
二、main()函數的形式
在最新的 C99 標准中,只有以下兩種定義方式是正確的:
int main(void) /*無參數形式*/
{
...
return 0;
}
int main(int argc, char *argv[]) /*帶參數形式*/
{
...
return 0;
}
int指明了main()函數的返回類型,函數名後面的圓括弧一般包含傳遞給函數的信息。void表示沒有給函數傳遞參數。
三、main()函數的返回值
從前面我們知道main()函數的返回值類型是int型的,而程序最後的 return 0; 正與之遙相呼應,0就是main()函數的返回值。那麼這個0返回到那裡呢?返回給操作系統,表示程序正常退出。
因為return語句通常寫在程序的最後,不管返回什麼值,只要到達這一步,說明程序已經運行完畢。而return的作用不僅在於返回一個值,還在於結束函數。
四、main()函數的參數
C編譯器允許main()函數沒有參數,或者有兩個參數(有些實現允許更多的參數,但這只是對標準的擴展)。這兩個參數,一個是int類型,一個是字元串類型。
第一個參數是命令行中的字元串數。按照慣例(但不是必須的),這個int參數被稱為argc(argument count)。第二個參數是一個指向字元串的指針數組。命令行中的每個字元串被存儲到內存中,並且分配一個指針指向它。
按照慣例,這個指針數組被稱為argv(argument value)。系統使用空格把各個字元串格開。一般情況下,把程序本身的名字賦值給argv[0],接著,把最後的第一個字元串賦給argv[1],等等。
(2)c語言編譯中main怎麼輸入擴展閱讀
C++中的main函數的應用:
C++繼承了C語言的大部分特性,因此保留了「程序總是從main函數開始執行,且總是默認從main函數的return語句或結尾處結束運行」這一傳統,但是要注意,C++中的main函數要想作為程序執行的出入口,必須寫在全局(Global)范圍,不能寫成某個結構體或某個類的成員。
雖然main函數可以作為結構體或者類的成員函數,但相應地會失去作為程序出入口的功能。C++中全局main函數的書寫格式與C語言完全相同,功能也完全相同,且同一C++程序同樣只能有一個全局main函數。
⑶ c語言中,標准main函數的書寫規范是什麼
在最新的 C99 標准中,只有以下兩種定義方式是正確的:
int main( void ) /* 無參數形式 */
{
...
return 0;
}
int main( int argc, char *argv[] ) /* 帶參數形式 */
{
...
return 0;
}
int指明了main()函數的返回類型,函數名後面的圓括弧一般包含傳遞給函數的信息。void表示沒有給函數傳遞參數。關於帶參數的形式,我們等會討論。
瀏覽老版本的C代碼,將會發現程序常常以。
main()
這種形式開始。C90標准允許這種形式,但是C99標准不允許。因此即使你當前的編譯器允許,也不要這么寫。
你還可能看到過另一種形式。
void main()
有些編譯器允許這種形式,但是還沒有任何標准考慮接受它。C++ 之父 Bjarne Stroustrup 在他的主頁上的 FAQ 中明確地表示:void main( ) 的定義從來就不存在於 C++ 或者 C 。所以,編譯器不必接受這種形式,並且很多編譯器也不允許這么寫。
⑷ c語言 如何在main中調用函數
是這樣的,C語言在編譯時候是順序編譯的 ,也就是說,如果被調用的函數是在調用函數之前被聲明過,就可以通過編譯,反之就會報錯。
你這個有兩種解決方案,1,在程序最開始聲明所有函數 2,把float jian(float a;float b;)這函數所有內容放到main()前面
⑸ vi中 c語言"main(int a){}"打出的具體步驟
vi abc.c
:i
命令模式,i 是 插入
按字元順序打入c語言程序就可以了:
#include <stdio.h>
main(int argc, char *argv[]){
printf("Hello !");
}
按 ESC 鍵 進命令模式
:wq
wq 是寫文件並退出 vi
------
vi abc.c
如果你要修改,把游標移到要改的地方, (例命令3G,goto 到第3行),按Esc鍵進命令模式,打 i 插入, 打入內容....
Esc鍵 進命令模式, :w 寫文件不退出,。。。再修改。。。。
看 vi 編輯器幫助文件吧。
⑹ 關於C語言main函數的調用
在C語言中,main函數可被遞歸調用
在C++標准中,main函數不可以被遞歸調用
但是許多C++編譯器對標准作出了擴展,使得main函數可以被遞歸調用。
可以用Visual C++做個實驗
1)用/Tc編譯器選項(使用C編譯器),main可以遞歸調用
2)用/Tp(編譯C++)和/Ze(啟用語言擴展),main可以遞歸調用
3)用/Tp(編譯C++)和/Za(禁用語言擴展),
main不可以遞歸調用
另外,根據我的經驗,90%的C/C++書籍作者對C/C++並不是完全了解。只有看經典書籍才能在技術細節上沒有錯誤或模糊。
⑺ 關於C語言main函數的參數,這個在命令行鍵入到底什麼意思為什麼我一運行就輸出結果,沒有輸入的步
你沒弄懂命令行參數的意思。你這個程序編譯(不是直接運行)後生成xx.exe。然後開始-運行-cmd,再cd exe所在路徑,再執行書上提示的語句。舉個例子,上述xx.exe和系統自帶的ping是一樣的,你在cmd裡面用ping ip的方式,這個參數ip在程序裡面就是那種方式讀入的。
⑻ windows下怎麼向c語言的標准main函數傳遞參數
誰說windows下沒有命令行,點擊開始-》運行-》輸入cmd 就進入命令行模式
然後輸入你編譯成功後的exe可執行文件(要輸入完整的路徑) 再空格 再輸入main參數 空格隔開(根據你的程序功能 來輸入參數,個數不限) 最後回車確定輸入,程序開始執行
int argc 就是你輸入的參數個數+1個文件名
char *argv[] 存儲的就是你剛才輸入的那些字元串 (文件路徑名,多個參數)
⑼ 大家好,請問在C語言中怎麼運行帶有參數的main()函數啊程序如下
DOS下運行帶參數的程序的命令格式為:命令名 參數1 參數2 ..... 參數n
其中命令名為是main所在的執行文件名。
假如你的這個項目是test,你找到test文件夾下的Debug文件夾,按WIN+ R彈出命令窗口,使用cd命令進入到上述的debug 目錄 ,再輸入第一行的命令,如:
test.exe 11 33 3444
這里要注意 test.exe 會作為argv[0]
希望對你有幫助!