巨集_變數_函式_指標_標頭檔案

weixin_33890499發表於2018-10-08

預處理巨集

#include "stdafx.h"
#define MAX_ARRAY_SIZE 50

int main()
{
    char buff2[ 20 ] = { "abcdefg" };
    char* pStr1 = buff2;
    int*  pNum1 = (int*)buff2;
    double* pDou = (double*)buff2;
    printf( "%c %d %lf\n" , *pStr1 , *pNum1 , *pDou );

    char szArr[ 20 ] = { "123456" };
    // 陣列名和指標
    // 陣列名和指標儲存的資訊:
    // 陣列名:
    // 1. 記憶體首地址
    // 2. 元素個數
    // 指標:
    // 1. 地址
    // 2. 地址指向的內容的長度
    char* pStr = szArr;
    int nNum = 0;
    int *pNum = &nNum;
    *pStr = 'A'; // 修改了1個位元組
    *pNum = 123; // 修改了4個位元組

    sizeof( szArr );
    fun( szArr );

    int nArr[ MAX_ARRAY_SIZE ] = { 0 };

    for( int i = 0; i < MAX_ARRAY_SIZE; ++i ) {
        nArr[ i ] = 0;
    }

    return 0;
}

變數的兩個性質

  1. 作用域 : 決定了變數在哪個範圍內有效
  2. 生存週期 : 決定了變數的記憶體空間在什麼時候有效

區域性變數的作用域和生存週期

  1. 作用域 : 一個大括號內
  2. 生存週期: 在作用域內. 進入了作用域,區域性變數就獲得記憶體空間,離開了作用,記憶體空間就被自動銷燬.

全域性變數的作用域和生存週期

  1. 作用域 : 整個檔案
  2. 生存週期: 從程式執行開始得到記憶體空間,記憶體空間在程式執行結束才被銷燬.

靜態修飾符
修飾區域性變數的時候

  1. 作用域 : 不變
  2. 生存週期: 和全域性變數一樣
    修飾全域性變數的時候
  3. 作用域 : 被限制在本檔案內
  4. 生存週期: 不變
#define MAX(n1,n2) (n1) > (n2) ? (n1) : (n2)

int nNum1 = 10,nNum2 = 20;
int nMax = MAX(nNum1 , ++nNum2);

  1. 函式
    1.1 函式的宣告和定義
    1.1.1 函式的宣告 : 函式的宣告就是函式頭 + 分號
    1.1.2 函式的定義 : 函式的頭 + 函式體
    1.1.2.1 函式頭
    1.1.2.1.1 返回值型別 + 函式名 + 引數列表
    1.1.2.2 函式體 : 就是由大括號組成的語句塊
    1.2 函式的呼叫
    1.2.1 函式呼叫表示式: 函式名(實參);
    1.3 函式的形參和實參
    1.3.1 形參 : 形式引數,指的是定義函式時在引數列表中的宣告.
    1.3.2 實參 : 實際引數,在呼叫函式時,給出的表示式(表示式可以是一個常量也可以是變數,甚至可以是其它的表示式)
    1.4 區域性變數,全域性變數和靜態變數
    1.4.1 作用域
    1.4.2 生存週期
    1.5 多檔案的專案
    1.5.1 在不同的原始檔中使用其它原始檔定義的函式時,需要新增宣告, 宣告部分存放在標頭檔案.
  2. 預處理
    2.1 #incldue : 包含標頭檔案

// 標頭檔案的作用(用於存放宣告)
// 1. 用於存放函式的宣告
// 2. 用於存放全域性變數的宣告

// 宣告全域性變數使用extern關鍵字
// 只宣告不定義會產生錯誤:無法解析的外部符號

2.2 #define : 定義巨集
2.2.1 有參巨集(有引數的巨集)
2.2.2 無參巨集

  1. 指標
    3.1 指標的定義方式
    3.1.1 資料型別* 指標變數的名字;
    int *p1 , *p2 , p3;
    3.2 指標的使用
    3.2.1 獲取變數的地址,使用取地值運算子(&)
    3.2.2 獲取指標指向的內容,使用解引用運算子(
    )
    3.3 指標攜帶的資訊
    3.3.1 地址資訊
    3.3.2 型別資訊(記憶體的長度)

相關文章