自考網
 自考動態  報考指南  考試政策  復習指導  課程設置  自考試題  自考就業  考生故事  助學單位  自考論壇 
 公共課: 真題|模擬題|筆記串講  經濟類: 真題|模擬題|筆記串講  法學類: 真題|模擬題|筆記串講  文學類真題|模擬題|筆記串講  高校招生  網絡課堂

高級語言程序設計知識點總結九

作者:   發布時間:2009-05-18 18:07:55  來源:
  • 文章正文
  • 資料下載
  • 自考圈
  • 論壇

  這種條件編譯形式與前面介紹的形式的唯一差異是第一行的ifdef改為ifndef.其意義是當標識符末被定義時,程序段1參與編譯,程序段2不參與編譯;否則,反之。在上述形式中,當程序段2不出現時,可簡寫成:

  # infdef 標識符

  程序段

  # endif

  9.4  帶參數的主函數

  在操作系統下執行某個C程序,是環境對C程序的啟動,可以看作是對該程序的main()函數的調用。main()函數執行結束后,控制返回環境。為能從環境向C程序傳遞信息,啟動C程序的命令行可帶有任選的參數。命令行的一般形式為

  程序名 參數1 參數2……參數n

  其中程序名和各參數之間用空白符分隔。

  為能讓main()函數讀取命令行中的參數,環境將多個參數以兩個參數形式傳遞給main()函數、其中第一個參數(習慣記作argc) 表示命令行中參數的個數(包括程序名);第二個參數(習慣記作argv)是一個字符指針數組。其中argv[0] 指向程序名字符串的第一個字符,argv[1]指向參數1字符串的第一個字符,…,argv[argc-1] 指向最后一個參數字符串的第一個字符。如果利因山等于1,則表示程序名后面沒有參數。下面的例子用于說明main()函數對參數argc

  與argv的引用方法。

  「例9.l」 回打啟動程序時的命令行各參數。

  # include<stdio.h>

  void main(int argc, char *argv[] /* 或char **argv; */)

  { int k;

  for( k=l; k<argc; k++)

  printf(“%c”,argv[k],k<argc-1?'':'\n' );

  printf(“\n\n”);

  }

  如上述程序的執行程序名為echopro.exe,執行該程序的命令行為:

  echopro Hello world!

  則程序將輸出

  Hello world!

  在以上命令行中,根據約定,main()函數的參數argc的值為3;argv[0],argv[1],argv[2]分別指向字符串“echopro”、“Hello”、“world!”的第一個字符。在程序的printf()函數調用中,字符輸出格式%c輸出一個字符,若是已輸出了命令行最后一個參數,該格式將輸出一個換行符,若是輸出其它參數,則輸出一個空白符。

  因函數的數組參數是指向數組首元素的指針變量,所以在主函數main()中可對argv施行增量運算。例如,在argv[0]指針指向程序名字符串的第一個字符情況下,對argv施增量運算++argv后,argv[0](或*argv)就指向參數1的第一個字符c利用argv的這一性質,可改寫上述程序為以下形式:

  # include<stdio.h>

  void main(int argc,char **argv)

  { while(——argc>0)

  printf(“%s%c”,*++argv,argc>1? '':'\n');

  }

  這里,++argv使指針argv先加1,讓它一開始就指向參數1;逐次增回,使它遍歷指向各參數。又利用函數printf()的第一個格式參數是字符串表達式,上述程序對printf()的調用可改寫成:

  printf((argc> l) ? “%s”:“%s\n”,* ++argv);

  「例9.2」 假定啟動程序時給出的命令行參數是一串整數,程序將全部整數求和后輸出。

  # include<stdio.h>

  # include<math.h>

  void main( int argc,char **argv)

  { int k,s;

  for(s=0, k=l; k<argc; k++)

  s+=atoi(*++agv); /* 從數字字符串譯出整數 */

  printf( “\t%d\n”, s);

  }

熱門資料下載:
<
自考最新熱貼:
【責任編輯:育路編輯  糾錯
【育路網版權與免責聲明】  
    ① 凡本網注明稿件來源為"原創"的所有文字、圖片和音視頻稿件,版權均屬本網所有。任何媒體、網站或個人轉載、鏈接、轉貼或以其他方式復制發表時必須注明"稿件來源:育路網",違者本網將依法追究責任;
    ② 本網部分稿件來源于網絡,任何單位或個人認為育路網發布的內容可能涉嫌侵犯其合法權益,應該及時向育路網書面反饋,并提供身份證明、權屬證明及詳細侵權情況證明,育路網在收到上述法律文件后,將會盡快移除被控侵權內容。
自考報名咨詢電話:010-51291357 51291557
熱點專題
 
 自考熱點關注
                        MORE>>
學員報名服務中心: 北京北三環西路32號恒潤中心18層1803室(交通位置圖
咨詢電話:北京- 010-51268840/41 傳真:010-51418040 上海- 021-51567016/17
育路網-中國新銳教育社區: 北京站 | 上海站 | 鄭州站| 天津站
本站法律顧問:邱清榮律師
1999-2010 育路教育版權所有| 京ICP證100429號
亚洲中国久久精品无码,国产大屁股视频免费区,一区二区三区国产亚洲综合,国产AV无码专区毛片
亚洲第一视频在线播放 | 日韩欧美精品在线 | 亚洲欧美日韩一区二区三区在线 | 亚洲国产综合精品视频 | 精品亚洲成a人在线观看青青 | 亚洲欧洲日产中文字幕 |