首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C 語言指針數組聲明解析:int (*ptr)[M] 表示什麼?

     編輯:程式設計綜合問答

聲明分析

int (*ptr)[M];

選項:

  • A. M 個指向整型變量的指針
  • B. 指向 M 個整型變量的函數指針
  • C. 一個指向具有 M 個整型元素的一維數組的指針
  • D. 具有 M 個指針元素的一維指針數組,每個元素都只能指向整型量

解析方法:從內向外、優先級規則

  1. ptr 是標識符。
  2. *ptr 表示 ptr 是一個指針。
  3. (*ptr)[M] 表示 ptr 指向一個長度為 M 的數組。
  4. int (*ptr)[M] 表示該數組元素類型為 int。

結論

選項 C 正確:ptr 是一個指向「包含 M 個整型元素的一維數組」的指針,常用於二維數組行指針或動態分配二維數組。

對比記憶

聲明含義
int *ptr[M];指針數組:M 個指向 int 的指針
int (*ptr)[M];數組指針:指向包含 M 個 int 的數組
int (*ptr)(M);函數指針:指向參數為 int、返回 int 的函數

實際應用場景

int arr[3][4];
int (*ptr)[4] = arr;  // ptr 指向 arr 的第一行(含 4 個 int)
ptr++;  // 指向第二行,地址增加 4*sizeof(int)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved