首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C 語言指標深度講解:四大核心概念、常量指標 vs 指標常量、函數指標與指標函數辨析

     編輯:關於C語言

指標四大概念必分清

  1. 指標類型:宣告時的類型(int *p 中的 int *)
  2. 指向類型:解參考得到的類型(int)
  3. 指標值:儲存的位址(p 的值)
  4. 指標本身位址:&p

常量指標 vs 指標常量

名稱宣告本質指向可變?指向值可變?
常量指標const int *p / int const *p指標變數✅ 可改指向❌ 不可透過 p 修改
指標常量int *const p常量(指標)❌ 初始化後不可改指向✅ 可透過 p 修改值
指向常量的指標常量const int *const p常量❌❌
int a=5, b=6;
const int *p = &a; p = &b; // OK
*p = 10; // Error
int *const q = &a; *q = 10; // OK
q = &b; // Error

函數指標 vs 指標函數

  • 函數指標:指向函數的指標變數 int (*fp)(int);
  • 指標函數:返回指標的函數 int *func(void);
int add(int a, int b) { return a+b; }
int (*fp)(int,int) = add;  // 函數指標
fp(3,4); // 7

實務建議

  1. 讀複雜宣告遵循「右左法則」:從變數名出發,先右後左,遇括號優先
  2. const 放在 * 左邊修飾指向值,右邊修飾指標本身
  3. 函數指標常用於回呼、狀態機、虛擬表實現多態
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved