編程基礎C—— 常量、宏、枚舉、函數以及函數的遞歸調用的應用總結

1. 常量
 
爲何使用常量:
防止數據在程序中被任意修改,形成先後不一致
能夠很方便的批量進行調整,能作到快捷、方便、安全
使用const進行定義常量
 
2.宏
 
使用宏定義常量:
 
#define開頭的語句稱爲宏定義
#做用是預編譯
#define   宏名 對應的表達式
  
#define Age 1
#define Sum(a,b)((a)+(b))
#define Max(a,b)((a)>(b)?(a):(b))
 
注意:最後沒有分號。
 
       宏定義不須要類型,由於只是文本替換。
       變量名不要與宏名重複,宏定義會用宏對應的值替換掉程序中出現的宏名(引號裏的除外)
       #include Sum(a,b)((a)+(b))
 
       使用宏要注意,必須在使用以前進行定義。
 
3.枚舉
     (1) enum 枚舉名  {枚舉元素1,枚舉元素2,,,,,};
        enum  Season {spring,summer,autumn,winter};
 
        一組有限的常量稱爲枚舉
        枚舉元素是常量不能賦值
 
enum是用來聲明枚舉類型數據,它能夠像數組同樣存儲許多的元素,可是不一樣於數組的是,它除了數字不能存儲之外,其餘類型的如字母、特殊符號、漢字均可以以任意組合存入enum當中去。
 
(2) enum的聲明:enum A { a, b, c };
 
enum聲明不一樣於數組,其只能夠聲明在Main()方法體外,在Main()中能夠被調用。
 
(3)  enum的枚舉數值默認是從0開始的,日後依次加1,可是也能夠強制元素序列進行改變。enum A {a=1, b, c}; 這樣就能夠實現了。
 
(4) enum能夠經過枚舉名加點經過枚舉的元素訪問枚舉數值。
例:
int i = (int)A.a;
枚舉值雖然是int類型的,可是也必須進行顯示的強制轉換。
 
(5) 一樣enum也能夠經過枚舉數值來訪問枚舉內的各個元素。方法是:Console.WriteLine( " (A)1 " );這樣就能夠訪問enum內的各個元素。
 
(6) 定義枚舉變量的三種形式:
1.先定義枚舉類型,再定義枚舉變量:   enum Season s;(s是枚舉變量)
2.定義枚舉類型的同時定義枚舉變量:  enum  Season {spring,summer,autumn,winter} season;
3.省略枚舉類型名,直接定義變量:       enum    {a,b}  c;
 
    (7)枚舉的適用場合
            一個變量有幾種可能的值,咱們能夠將變量制定的值一一列出
   (8)枚舉的使用事項
            enum color{red=0,orange=1,green=3,blue=4};
            enum color{red=10,orange,green,blue};
     (9)遍歷須要注意的地方,枚舉類型的元素的值要具備連續性纔可使用for遍歷。
   (10)枚舉的好處
              提升代碼可讀性
              便於程序維護
4.函數
用函數實現模塊化程序設計。
 函數的定義:
返回值類型 函數名(形參列表,多個形參要對變量的類型單個聲明)
{
     函數體
     return 函數值;
}
 
將函數的定義寫在主函數(main函數)以前。
 
注意有返回值的函數,return的類型要與函數返回值類型一致,無返回值,不能return一個值,可是可使用return。
函數調用的結果就是return返回的值,
調用函數時,實參列表的個數要與形參保持一致,而且類型也要一致。
 
變量的做用域:
 
1)局部變量:(在某函數體內時),變量的做用域取決於其定義的大括號內,若是在函數的形參列表內,其做用域屬於該函數。
(2)全局變量:其做用域取決於其聲明的位置,在其位置以後的,都可以使用。
   注意: 當局部變量與全局變量名字重複時,變量的值取決於離其最近的賦值運算。
 
函數調用的通常形式:
函數名(實參表列)
 
  例:
//使用函數調用求兩個數中比較大的數

#include <stdio.h>
int max(int a,int b)
{
    int m;
    m = a > b?a:b;
    return m;
}
int main(int argc, const char * argv[])
{
    int x,y,z;
    printf("請輸入兩個整數:");
    scanf("%d%d",&x,&y);
    z =  max (x,y);       //函數調用
    printf("max=%d",z);
    return 0;
     }    
5.函數的遞歸調用:
在調用一個函數的過程當中又出現直接或間接地調用該函數自己,稱爲該函數的遞歸調用。
 
例:
用遞歸函數計算10之內偶數的和;
 
#include <stdio.h>
int sum(int a)
{
    if(a == 0)
    {
        return 0;
    }
    int b = a + sum(a - 2);
    return b;
}
int main(int argc, const char * argv[])
{
    int c = sum(10);
    printf("c = %d",c);
    return 0;
}
相關文章
相關標籤/搜索