程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言基礎知識 >> TC編程手冊之二

TC編程手冊之二

編輯:C語言基礎知識

函數與數組.由於時間和精力有限,故不能像譚浩強譚老那樣把C語言講的細致入微, 但我想簡單易懂的講解對初學者來說還是有很大幫助的.

函數:

幾乎所有的C語言教材都把函數部分單列一章, 可見函數在C語言中是十分重要的.當一位初學者試圖編寫一則上百行的程序時, 他會很快就被數不清的變量搞得暈頭轉向, 再看各條語句的邏輯關系, 恐怕連自己也看不懂了吧, 更不用說別人讀你的程序了. 這時你所需要的就是把一個較大的程序分為若干個程序模塊, 每一個模塊實現一個特定的功能. 所有函數都是平行的, 即在定義函數時是互相獨立的, 一個函數並不從屬於另一個函數, 即函數不能嵌套定義. 就是這樣一個一個平行關系的小模塊, 將一個復雜的程序分生了多個簡單的小程序. 這樣做可以使程序的條理更加的清晰, 不僅方便了程序員的工作, 也便於其他人對程序的閱讀.

從用戶使用的角度看,函數有兩種(以下援引譚老的話,不好意思,畢竟譚老的經驗要更豐富嘛^0^):

(1).標准函數, 即庫函數. 這是由系統提供的, 用戶不必自己定義這些函數, 可以直接使用他們. 應該說明, 不同的C系統提供的庫函數的數量和功能不同, 當然有一些基本的函數是共同的.

(2).用戶自己定義的函數, 用以解決用戶的專門需要.

從函數的形式看,函數分兩類:

(1).無參函數.例如:

printstar();
   print_message();
   main()
   {
     printstar();
     print_message();
     printstar();
   }
printstar()
   {
     printf("************\n");
   }
print_message()
   {
     printf("*green food*\n");
   }

運行結果如下:

************

* green food *

************

其中printstar和print_message都是無參函數.在調用無參函數時,主調函數並不將數據傳送給被調用函數.無參函數可帶回或不帶回函數值.

(2)有參函數. 在調用函數時,在主調函數與被調函數之間有數據傳遞. 也就是說主調函數可以將數據傳遞給被調函數使用, 被調函數的數據也可以傳回來共主調函數使用. 例如:

  #include
   print_add();
   main()
   {
     printf("the add is: %d",print_add());
   }
   print_add()
   {
     int a=1, b=2, c;
     c=a+b;
     return c;
   }

運行結果如下:

the add is: 3

以上我們對函數有了大致的了解, 下面我向大家介紹一下形式參數和實際參數.

首先從定義入手, 形式參數即在定義函數時函數後面括弧中的變量名. 而實際參數則是指在主調函數中調用一個函數時, 函數名後面括弧中的參數.(可以是一個表達式) 具體見下例:

  #include
   print_add(int, int);
   main()
   {
     int a, b, c;
     scanf("%d%d",&a,&b);
     c=print_add(a,b);
     printf("the add is :%d",c);//實際參數
   }
   print_add(int x, int y)//形式參數
   {
     int z;
     z=x+y;
     return(z);
   }

需要注意的幾點問題:

(1) 實參可以是常量,變量, 或表達式, 但必須要有確切的值.

(2) 在被定義的函數中, 必須指定形參的類型.

(3) 形參與實參的類型應相同或賦值兼容.

函數需要講的東西還有很多, 這裡只是一個簡略的介紹. 還有很多的內容沒有涉及到, 推薦大有時間可以看看譚浩強的書. 關於函數部分譚老的書要比老Delitel寫的有條理的多.(也許是翻譯工作做的不好)希望大家在看了上面的文章後, 能有所幫助. 有問題可以給我寫信, 我的郵箱是:[email protected]

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved