日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

黑馬程序員

 黃南山 2018-01-22

                      Java培訓(xùn)、Android培訓(xùn)、iOS培訓(xùn)、.Net培訓(xùn)、期待與您交流!                                                     

                                                         (以下內(nèi)容是對黑馬蘋果入學(xué)視頻的個人知識點總結(jié))

(一)枚舉

1)枚舉類型的定義

  枚舉是C語言中的一種基本數(shù)據(jù)類型,并不是構(gòu)造類型,它可以用于聲明一組常數(shù)。

 一般形式為:enum 枚舉名 {枚舉元素1,枚舉元素2,……};

2)枚舉變量的定義

①先定義枚舉類型,再定義枚舉變量

②定義枚舉類型時同時定義枚舉變量

③省去枚舉名稱,直接定義枚舉變量

1 enum Sex { Man, Woman, Unkown};
2 enum Sex sex;

 (二)宏定義

1)不帶參數(shù)的宏定義

一般形式:

#define 宏名 字符串

 比如#define ABC 10

定義時需要注意:

1> 宏名一般用大寫字母,以便與變量名區(qū)別開來,但用小寫也沒有語法錯誤

2> 對程序中用雙引號擴起來的字符串內(nèi)的字符,不進行宏的替換操作。

3>宏名的有效范圍是從定義位置到文件結(jié)束。如果需要終止宏定義的作用域,可以用#undef命令

2)作用

其實和#include差不多,是把源程序中所有"宏名"替換成右邊的"字符串"

復(fù)制代碼
#include <stdio.h>

int main()
{
    char *name = "COUNT";
    
    printf("%s\n", name);
    
    #define COUNT 4
    
    int ages[COUNT] = {1, 2, 67, 89};
    
    
    
    for ( int i = 0; i<COUNT; i++) {
        printf("%d\n", ages[i]);
    }
    
    // 從這行開始,COUNT這個宏就失效
    #undef COUNT
    
    int a = COUNT;
    
    return 0;
}
復(fù)制代碼

2)帶參數(shù)的宏定義

一般形式:

#define 宏名(參數(shù)列表) 字符串

在編譯預(yù)處理時,將源程序中所有宏名替換成字符串,并且將 字符串中的參數(shù) 用 宏名右邊參數(shù)列表 中的參數(shù)替換

帶參數(shù)的宏定義效率比函數(shù)高

1>使用注意:

① 宏名和參數(shù)列表之間不能有空格,否則空格后面的所有字符串都作為替換的字符串

② 帶參數(shù)的宏在展開時,只作簡單的字符和參數(shù)的替換,不進行任何計算操作。所以在定義宏時,一般用一個小括號括住字符串的參數(shù)。計算結(jié)果最好也用括號括起來

復(fù)制代碼
#include <stdio.h>

#define pingfang(a) ((a)*(a))

int main()
{

    int c = pingfang(5+5)/pingfang(2);
    
    printf("c is %d\n", c);
 
    return 0;
}
復(fù)制代碼

(三)自定義 typedef

 我們可以使用typedef關(guān)鍵字為各種數(shù)據(jù)類型定義一個新名字(別名)。

使用場合:

①基本數(shù)據(jù)類型

② 指針

③結(jié)構(gòu)體

④枚舉

⑤ 指向函數(shù)的指針

復(fù)制代碼
typedef struct
{
    int age;
} MyStu;

typedef enum {
    Man,
    Woman
} MySex;

typedef int (*MyPoint)(int, int);

typedef struct Person
{
    int age;
} * PersonPoint;
復(fù)制代碼

(四)static和exterm

1)對函數(shù)的作用

外部函數(shù):定義的函數(shù)能被本文件和其他文件訪問

 1> 默認(rèn)情況下所有函數(shù)都是外部函數(shù)

 2> 不允許有同名的外部函數(shù)

 內(nèi)部函數(shù):定義的函數(shù)只能被本文件訪問,其他文件不能訪問

 1> 允許不同文件中有同名的內(nèi)部函數(shù)

 static對函數(shù)的作用:

 1> 定義一個內(nèi)部函數(shù)

 2> 聲明一個內(nèi)部函數(shù)

 extern對函數(shù)的作用:

 1> 完整地定義一個外部函數(shù)

 2> 完整地聲明一個外部函數(shù)

 (extern可以省略,默認(rèn)情況下聲明和定義的函數(shù)都是外部函數(shù))

2)對變量的作用

1>對局部變量

static修飾局部變量的使用場合:

1.如果某個函數(shù)的調(diào)用頻率特別高

2.這個函數(shù)內(nèi)部的某個變量值是固定不變的

延長局部變量的生命周期:程序結(jié)束的時候,局部變量才會被銷毀 并沒有改變局部變量的作用域

總結(jié)來說:

1.extern可以用來聲明一個全局變量,但是不能用來定義變量

2.默認(rèn)情況下,一個全局變量是可以供多個源文件共享的,也就說,多個源文件中同名的全局變量都代表著同一個變量

3.如果在定義全局變量的時候加上static關(guān)鍵字,此時static的作用在于限制該全局變量的作用域,只能在定義該全局變量的文件中才能使用,跟其他源文件中的同名變量互不干擾

 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多