亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

main函數的參數

2019-11-17 05:22:41
字體:
來源:轉載
供稿:網友
C程序最大的特點就是所有的程序都是用函數來裝配的。main()稱之為主函數,是所有程
序運行的入口。其余函數分為有參或無參兩種,均由main()函數或其它一般函數調用,若調用
的是有參函數,則參數在調用時傳遞。
main()
{
...
y1=f1(x1,x2);
...
}
f1(int a,int b)
{
....
Y2=f2(x3,x4);
....
}
f2(int m,int n)
{
....
.....
}
在前面課程的學習中,對main()函數始終作為主調函數處理,也就是說,答應main()調用
其它函數并傳遞參數。事實上,main()函數既可以是無參函數,也可以是有參的函數。對于有
參的形式來說,就需要向其傳遞參數。但是其它任何函數均不能調用main()函數。當然也同樣
無法向main()函數傳遞,只能由程序之外傳遞而來。這個具體的問題怎樣解決呢?
我們先看一下main()函數的帶參的形式:
main(argc,argv)
int argc,char *argv[];
{
.....
}
從函數參數的形式上看,包含一個整型和一個指針數組。當一個C的源程序經過編譯、鏈接后,會生成擴展名為.EXE的可執行文件,這是可以在操作系統下直接運行的文件,換句話說,就是由系統來啟動運行的。對main()函數既然不能由其它函數調用和傳遞參數,就只能由
系統在啟動運行時傳遞參數了。
在操作系統環境下,一條完整的運行命令應包括兩部分:命令與相應的參數。其格式為:
命令參數1參數2....參數n¿
此格式也稱為命令行。命令行中的命令就是可執行文件的文件名,其后所跟參數需用空格分隔,并為對命令的進一步補充,也即是傳遞給main()函數的參數。
命令行與main()函數的參數存在如下的關系:
設命令行為:PRogram str1 str2 str3 str4 str5
其中program為文件名,也就是一個由program.c經編譯、鏈接后生成的可執行文件program.exe,其后各跟5個參數。對main()函數來說,它的參數argc記錄了命令行中命令與參數的個數,共6個,指針數組的大小由參數argc的值決定,即為char*argv[6],指針數組的取值情況如圖6-15所示。
main函數的參數(圖一)
數組的各指針分別指向一個字符串。應當引起注重的是接收到的指針數組的各指針是從命令行的開始接收的,首先接收到的是命令,其后
才是參數。
下面用實例來說明帶參數的main()函數的正確使用。
[例6-29] 利用圖形庫函數繪制一個變化的環。它是把一個半徑為R 1的圓周分成n份,然
后以每個等分點為圓心,以R s為半徑畫n個圓(關于作圖的具體理論本教材第9章第1節作了專
門介紹,這里只作簡單分析)。利用m a i n ( )函數的帶參數形式,我們可以從鍵盤以命令行的方
式輸入R 1和R s及屏幕的背景色。
#include <graphics.h> /*包含圖形庫函數的頭文件* /
#include <math.h>
#define pi 4.1415926
m a i n ( a r g c , a r g v )
int argc;char *argv[]; /* 定義帶參數的m a i n ( ) * /
{
int x,y,r1,rs,color;
double a;
int gdriver=DETECT,gmode;
initgraph(&gdriver,&gmode,"..//bgi ")啟;/動*圖形工作方式*/
r1=atoi(argv[1]);/*計算基礎圓半徑*/
rs=atoi(argv[2]);/*計算同心圓半徑*/
color=atoi(argv[3]);/*背景色*/
cleardevice();/*清除圖形屏幕*/
setbkcolor(color);/*設置背景色*/
setcolor(4);/*設置圖形顯示顏色*/
for(a=0;a<=2*pi;a+=pi/18)/*繪制同心圓*/
{
x=r1*cos(a)+320;
y=r1*sin(a)+240;
circle(x,y,rs);/*以圓心坐標為x、y,半徑為rs畫圓*/
}
getch();/*等待按鍵繼續*/
close graph();/*關閉圖形工作方式*/
}
若程序名為L6-29.c,經編譯、連結生成可執行文件L6-29.exe。在操作系統的環境下運行
程序,命令行方式為:
l6-29 40 20 3
則命令行與main()函數的參數有如圖6-16所示的關
系。
圖6-16中,argv[0]是程序名,argv[1]是r1的值,
argv[2]是rs的值,argv[3]是屏幕的背景色。
由于指針數組均存放字符串,所需的圓半徑及背景
色彩通過atoi()函數轉換為整型。
通過帶參數的main()函數,我們可以為自己的程序設置口令,在運行程序的命令行中給出所需的口令,正確則繼續,否則退出。程序圖形輸出如圖6-17所示。
main函數的參數(圖二)
[例6-30]將上述程序作修改,在程序的入口處添置密碼,若給定密碼正確,則顯示圖
形。
#include<graphics.h>
#include <math.h>
#define pi 4.1415926
m a i n ( a r g c , a r g v )
int argc;char *argv[];
{
int x,y,r1,rs,color;
double a;
int gdriver=DETECT,gmode;
if (strcmp(argv[1],"pass")!=0) 設/置* 口令的比較*/
{ printf("passWord error!/n");
e x i t ( 0 ) ;
}
initgraph(&gdriver,&gmode,"..//bgi ");
r1=atoi(argv[2]);
rs=atoi(argv[3]);
color=atoi(argv[4]);
cleardevice();
setbkcolor(color);
setcolor(4);
for(a=0;a<=2*pi;a+=pi/18)
{
x=r1*cos(a)+320;
y=r1*sin(a)+240;
circle(x,y,rs);
}
getch();
closegraph();
}
main函數的參數(圖三)
在操作系統的環境下運行程序, 命令行中增加口令“p a s s”,命令行方式為:
l6-30 pass 20 40 3
main函數的參數(圖四)
指針數組的存儲字符串如圖6-18所示。
若給定字符串argv[1]的值是pass,則程序正確運行,否則程序退出??诹钫_的情況下,顯示的圖形為圖6-17中的一個。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩中文字幕在线观看| 91在线视频一区| 欧美成人免费小视频| 精品久久久久久久大神国产| 在线视频精品一| 久久精品视频在线播放| 亚洲精品91美女久久久久久久| xxxxx成人.com| 亚洲第一区在线| 91精品国产自产在线观看永久| 国产精品久久久久免费a∨| 欧美日韩国产精品| 国产v综合ⅴ日韩v欧美大片| 亚洲天堂av图片| 欧美激情videoshd| 97超级碰碰碰久久久| 国产精品日韩欧美| 欧洲永久精品大片ww免费漫画| 国产婷婷97碰碰久久人人蜜臀| 欧美成人一区二区三区电影| 麻豆国产va免费精品高清在线| 亚洲第一区在线| 国产亚洲人成网站在线观看| 91情侣偷在线精品国产| 国产精品视频自拍| 欧美激情精品久久久久久变态| 国产精品久久久一区| 欧美精品video| 亚洲色图35p| 久久视频在线观看免费| 美女撒尿一区二区三区| 国模视频一区二区| 国产一区二区三区中文| 日韩av一区在线| 亚洲国产欧美久久| 亚洲一区二区三区在线视频| 日韩电影大片中文字幕| 欧美在线视频a| 中文字幕国产精品| 欧美日韩亚洲国产一区| 亚洲毛片在线看| 国产成人精品一区二区| 色爱精品视频一区| 欧美怡红院视频一区二区三区| 国产精品旅馆在线| 亚洲国产精品一区二区三区| 日韩成人中文字幕在线观看| 欧美精品在线视频观看| 成人做爰www免费看视频网站| 91沈先生在线观看| 欧美视频在线观看免费网址| 亚洲男人天堂2023| 精品国产1区2区| 欧美成人免费全部| 国产在线观看一区二区三区| 欧美自拍大量在线观看| 精品毛片三在线观看| 亚洲天堂色网站| 中文字幕在线精品| 亚洲石原莉奈一区二区在线观看| 97视频在线观看亚洲| 日韩国产精品亚洲а∨天堂免| 最近2019中文字幕大全第二页| 国产精品视频一区二区三区四| 国产精品999999| 欧美成人四级hd版| 欧美在线视频免费| 91青草视频久久| 久久久久在线观看| 国产精品网站视频| 68精品久久久久久欧美| 日韩免费在线观看视频| 久久精品视频网站| 日韩精品视频在线观看免费| 欧美日韩中文字幕| 久久久久久18| 精品亚洲夜色av98在线观看| 成人黄色在线免费| 亚洲欧美激情四射在线日| 2019国产精品自在线拍国产不卡| 成人免费午夜电影| 欧美中在线观看| 激情成人中文字幕| 国产精品一区二区性色av| 国产成人一区二区三区| 国语自产精品视频在线看| 欧美乱人伦中文字幕在线| 91在线观看免费高清完整版在线观看| 久久久久久国产三级电影| 亚洲国产日韩精品在线| 国产欧美亚洲精品| 国产精品视频26uuu| 97av在线视频| 在线视频国产日韩| 亚洲第一av网站| 色综合久久精品亚洲国产| 中文字幕视频一区二区在线有码| 欧美一级视频一区二区| 69视频在线播放| 精品久久久久久中文字幕一区奶水| 亚洲精品欧美日韩专区| 色婷婷**av毛片一区| 久久久久久伊人| 国产精品第10页| 国产成人精品在线视频| 欧美大片免费看| 国产91网红主播在线观看| 丝袜亚洲另类欧美重口| 色偷偷综合社区| 久久久久久国产精品三级玉女聊斋| 一区二区三区 在线观看视| 日韩第一页在线| 欧美黄色片在线观看| 欧美激情精品久久久久久变态| 欧美亚洲第一页| 午夜欧美大片免费观看| 欧美一级视频免费在线观看| 日韩精品在线免费播放| 九九久久精品一区| 国产99久久精品一区二区永久免费| 亚洲综合色激情五月| 亚洲一区二区福利| 亚洲无av在线中文字幕| 欧美日韩国产麻豆| 午夜精品99久久免费| 亚洲欧美精品在线| 亚洲jizzjizz日本少妇| 国产香蕉97碰碰久久人人| 亚洲性生活视频在线观看| 久久久久久一区二区三区| 亚洲人午夜色婷婷| 色综合五月天导航| 国产精品mp4| 38少妇精品导航| 中文字幕亚洲第一| 国产精品亚洲自拍| 成人亲热视频网站| 国产丝袜一区视频在线观看| 国产欧美日韩免费| 精品国产31久久久久久| 精品露脸国产偷人在视频| 亚洲区免费影片| 一区二区三区www| 欧美激情亚洲自拍| 日韩久久免费视频| 这里只有精品久久| 91美女高潮出水| 91精品视频在线看| 精品国产精品三级精品av网址| 日本免费在线精品| 69**夜色精品国产69乱| 国产精品青草久久久久福利99| 深夜精品寂寞黄网站在线观看| 欧美黑人国产人伦爽爽爽| 国产成人精品在线播放| 成人做爽爽免费视频| 亚洲自拍av在线| 欧美大码xxxx| 亚洲高清一二三区| 91美女福利视频高清| 欧美色视频日本版| 欧美自拍视频在线观看| 午夜精品视频网站| 日韩成人高清在线|