巨集_變數_函式_指標_標頭檔案
預處理巨集
#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;
}
變數的兩個性質
- 作用域 : 決定了變數在哪個範圍內有效
- 生存週期 : 決定了變數的記憶體空間在什麼時候有效
區域性變數的作用域和生存週期
- 作用域 : 一個大括號內
- 生存週期: 在作用域內. 進入了作用域,區域性變數就獲得記憶體空間,離開了作用,記憶體空間就被自動銷燬.
全域性變數的作用域和生存週期
- 作用域 : 整個檔案
- 生存週期: 從程式執行開始得到記憶體空間,記憶體空間在程式執行結束才被銷燬.
靜態修飾符
修飾區域性變數的時候
- 作用域 : 不變
- 生存週期: 和全域性變數一樣
修飾全域性變數的時候 - 作用域 : 被限制在本檔案內
- 生存週期: 不變
#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.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.1 #incldue : 包含標頭檔案
// 標頭檔案的作用(用於存放宣告)
// 1. 用於存放函式的宣告
// 2. 用於存放全域性變數的宣告
// 宣告全域性變數使用extern關鍵字
// 只宣告不定義會產生錯誤:無法解析的外部符號
2.2 #define : 定義巨集
2.2.1 有參巨集(有引數的巨集)
2.2.2 無參巨集
- 指標
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 型別資訊(記憶體的長度)
相關文章
- 指標函式 和 函式指標指標函式
- 8.10 標頭檔案剖析:變數宣告變數
- 標頭檔案包含方式,main函式的引數解析AI函式
- string.h標頭檔案(字串函式)字串函式
- algorithm標頭檔案下的常用函式Go函式
- C++ 字串 cctype 標頭檔案標準庫處理函式C++字串函式
- iOS標頭檔案中如何在巨集裡引用已有的巨集iOS
- 函式指標函式指標
- [C++] 成員函式指標和函式指標C++函式指標
- C++ 字元處理函式(cctype標頭檔案)C++字元函式
- 指標變數指標變數
- 【不在混淆的C】指標函式、函式指標、回撥函式指標函式
- C++標頭檔案<algorithm>中常用函式簡介C++Go函式
- 檔案指標指標
- 函式指標、回撥函式、動態記憶體分配、檔案操作函式指標記憶體
- typedef void (*Fun) (void) 的理解——函式指標——typedef函式指標函式指標
- C++ 數學函式、標頭檔案及布林型別詳解C++函式型別
- 8.13 標頭檔案剖析:標頭檔案路徑(下)
- C語言中的標頭檔案中的巨集定義C語言
- 傳遞指標引數(函式內部給指標賦值)示例指標函式賦值
- C++(函式指標)C++函式指標
- 函式指標基礎函式指標
- 關於函式指標函式指標
- c++ 函式指標C++函式指標
- 函式指標&回撥函式Callback函式指標
- C語言指標(二) 指標變數 ----by xhxhC語言指標變數
- const 變數和指標變數指標
- C語言 函式指標C語言函式指標
- 函式指標練習題函式指標
- Rust中的函式指標Rust函式指標
- cpp:"函式指標"的方法函式指標
- extern 用法,全域性變數與標頭檔案(重複定義)變數
- 對 “C語言指標變數作為函式引數” 的個人理解C語言指標變數函式
- 標頭檔案講解
- 祖傳標頭檔案
- locate標頭檔案和庫檔案
- 字串 reverse(str.begin(),str.end()) 函式的標頭檔案 以及 str.clear()函式字串函式
- C++中函式指標與函式物件C++函式指標物件