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

C 語言指針深度解析:四大核心屬性與進階用法

     編輯:C 語言基礎

指針四要素

搞懂指針必須區分四個概念:

  1. 指針類型:聲明中去掉變量名剩下的部分(如 int*、int**、int(*)[3])
  2. 指向類型:去掉變量名和最左邊 * 剩下的(如 int、int*、int[3])
  3. 指針值/指向地址:指針存儲的數值,代表內存起始地址
  4. 指針自身內存:指針變量本身佔用的空間(32位系統 4 字節)

實例拆解

聲明指針類型指向類型說明
int *p;int*int指向整數
char *p;char*char指向字符
int **p;int**int*指向整數指針
int (*p)[3];int(*)[3]int[3]指向 3 元素整數數組
int *(*p)[4];int*(*)[4]int*[4]指向 4 元素整數指針數組

關鍵作用

  • 指向類型決定:解引用 *p 取多少字節、指針算術 p+1 跳多少字節
  • 指針類型決定:賦值兼容性、sizeof(p)、作為函數參數類型匹配

必問三問題

遇到指針變量,先問自己:
1. 它的類型是什麼?
2. 它指向的類型是什麼?
3. 它當前指向哪裡(地址值)?

指針自身內存判斷左值

sizeof(指針類型) 給出指針自身大小。表達式若佔用可寫內存(有地址)則為左值,可取地址 &;寄存器變量、常量表達式非左值。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved