C语言综合教程

社区服务
高级搜索
猴岛论坛辅助工具C语言综合教程
发帖 回复
倒序阅读 最近浏览的帖子最近浏览的版块
4个回复

C语言综合教程

楼层直达
53771474

ZxID:1574413

等级: 贵宾
潜了好多天水

举报 只看楼主 使用道具 楼主   发表于: 2009-04-12 0
  1.C语言的格式           
    l        什麼是C語言?
l        C語言執行過程?


原始程式 --> 經由編譯器 --> 變成目的檔 --> 經由連結器 --> 變成執行檔
SOURCE.C --> COMPILER --> SOURCE.OBJ --> LINKER --> SOURCE.EXE






l        C 語 言 的 特 性
( 1 ) 可 以 像 組 合 語 言 一 樣 進 行 硬 體 之 直 接 存 取 .
( 2 ) 為 語 法 規 則 簡 單 , 清 楚 , 容 易 使 用 之 結 構 化 語 言 .
( 3 ) 必 要 時 可 以 與 組 合 語 言 連 結 .
( 4 ) 可 攜 性 ( Portability ) 極 佳 , 跨 平 台 的 能 力 強 .



l        標 準 C 語 言 格 式
#include < stdio.h > ----> 前置處理器
main( ) ----> 主程式
{
int i=0 ; /* 變 數 宣 告 */
i=i+1; /* 算 數 運 算 */----> 程式主體
printf("i=%d\n",i) ; /* 輸 出 至 螢 幕 */
}
subroutine( ) ----> 副程式
..
..
subroutine( ) ----> 副程式
..
..
2.
l        變 數 命 名 的 原 則 ?
1.          開 頭 必 須 是 字 母 ( letter ) 或 底 線 ( underscore ) .

2.          字 元 的 大 寫 小 寫 所 代 表 的 意 義 不 同 .

3.          不 得 使 用 關 鍵 字 ( keyword ) . (在 Borland C++ 軟體中已粗體顯現)



l        變 數 的 資 料 型 態 種 類 :
類 別
符號位元
位元長(bits)
表 示 法
數 值 範 圍

整 數

16
int(short)
-32768->32767

32
long
-2147483648->2147483647


16
unsigned int
0->65535

16
unsigned short
0->65535

32
unsigned long
0->4294967295

浮點數

32
float
10^-38->10^38

64
double
10^-308-->10^308

字元

8
char
0->255


l         


l        變 數 的 宣 告 方 法 :
( 1 ) 整 數 部 份 :
      int a;
        int b,c=45;
        short int name;
        long int var_name;
      unsigned int argu1=30;



( 2 ) 浮 點 數 部 份 :
        float a=12.3456;  /*單精準度*/
        float b=0.12345e2;
        double score=4.987654322e-7;  /*雙精準度*/



( 3 ) 字 元 部 份 :

        char c='c';
        char bell=7;  /*7為ASCII之響聲字元*/

3.l        自 動 變 數 ( auto variable )
l          自 動 變 數 只 在 它 所 定 義 的 區 塊 內 有 效 。 只 要 在 變 數 所 屬 的 區 塊 結 構 內 執 行 , 該 變 數 的 資 料 是 有 效 而 正 確 的 。 當 程 式 執 行 離 開 了 該 區 塊 , 所 有 於 區 塊 內 定 義 的 自 動 變 數 就 不 存 在 了 。
l            Example 1:
l          main( )
        {
          int x=1;
          inner( );
          printf("%d\n",x);
        } l                    inner( )
        {
          int x=2;
          printf("%d\n",x);
        }



l        靜 態 變 數 ( static variable)
靜 態 變 數 與 自 動 變 數 一 樣 , 是 某 特 定 函 數 內 的 區 域 性 變 數 , 但靜 態 變 數 的 值 不 會 因 函 數 的執 行 結 束 而 消 失 。

 
      靜 態 變 數 的 宣 告 如 下 所 示 :



  {
          static int a;
          static int b=12345;
          static char c;
          static float d=13.45;
              .
              .
              .
          }


Example 1:

main()
    {
        increment();
        increment();
        increment();
    }         
   
      increment()
    {
        int x=0;
        x=x+1;
    printf("%d\n",x);
        }

Result = ?????
Example 2:

main()
  {
        increment();
        increment();
        increment();
  }

      increment()
  {
    static int x=0;
    x=x+1;
    printf("%d\n",x);
        }

Result = ?????



l        外 部 變 數 ( extern variable)
外部 變 數 和 前 面 所 提 到 的 變 數 不 同 。 外 部 變 數 的 有 效 範 圍 不 是 區 域 性 , 而 是 整 體 性 ( global ) , 外 部 變 數 定 義 在 任 何 函 數 的 外 面 , 表 示 可 以 被 其 他 函 數 所 共 用 。


Example 1:

    int x=123;

        main()
        {
          printf("%d\n",x);


        } 

Result =  ?????
Example 2:

    int x=123;

  main()
        {
          int x=321;
          printf("%d\n",x);

        }

Result =  ?????




Example 3:

#include < stdio.h >
#include "extern.c"

        int x=123;
        main()
        {
          printf("%d\n",x);
          run1();
          run2();
        }
        run1()
        {
          printf("%d\n",x);
        }
 

extern.c 內 容 如 下 :

        #include < stdio.h >
        run2()
        {
          extern int x;
          printf("%d\n",x);
        }



Result =  ?????




/* ======================================== */

/*    程式實例:                                */

/*    局部(local)和整體(Global) 變數              */

/* ======================================== */

#include <stdio.h>



int step = 10;                    /* 整體變數宣告 */

int count = 5;                    /* 整體變數宣告 */



/* ---------------------------------------- */

/*  將變數值加一              */

/* ---------------------------------------- */

void increment()

{

  int step = 0;                    /* 局部變數 step 宣告 */



  step++;                        /* 局部變數加一 */

  count++;                      /* 整體變數加一 */

  printf(" 副程序    %2d      %2d    \n",step, count);

}



/* ---------------------------------------- */

/*  主程式                                  */

/* ---------------------------------------- */

void main()

{

  int count = 0;                  /* 局部變數宣告 */



  count++;                      /* 局部變數加一 */

  step++;                        /* 整體變數加一 */

  printf(" 程序名    STEP    COUNT  \n");

  increment();                  /* 副程序呼叫 */

  printf(" 主程序    %2d      %2d    \n",step, count);

}/* ======================================== */





執行結果



程序名
STEP
COUNT

副程序
1
6

主程序
11
1




长谷川天

ZxID:1118562

等级: 中士
男人要感謝20嵗時陪在身邊的女人。囙爲20嵗的男人在一生中的
举报 只看该作者 沙发   发表于: 2009-04-12 0
顶下,C语言是比较难学的,最好还是从VB或是C++开始比较好!
53771474

ZxID:1574413

等级: 贵宾
潜了好多天水

举报 只看该作者 板凳   发表于: 2009-04-12 0
难学怎么办,
53771474

ZxID:1574413

等级: 贵宾
潜了好多天水

举报 只看该作者 地板   发表于: 2009-04-12 0
虽然难学 但我们还是要学 !!!!!!!!!!!理想=日后的金钱
53771474

ZxID:1574413

等级: 贵宾
潜了好多天水

举报 只看该作者 4楼  发表于: 2009-04-16 0
刷一刀
« 返回列表
发帖 回复