C語言 指針數組和數組指針區別 - C語言零基礎入門教程


目錄

零基礎 C/C++ 學習路線推薦 : C/C++ 學習目錄 >> C 語言基礎入門

一.簡介

1.數組

數組中的每個元素都有一個序號,這個序號從 0 開始,稱為下標index,例如,a[0] 表示第 1 個元素,a[3] 表示第 4 個元素。數組是一個整體,它的內存是連續的,內存示意圖:

C語言 指針數組和數組指針區別

2.指針

指針很靈活,它可以指向任意類型的數據。指針的類型說明了它所指向地址空間的內存,以下是有效的指針聲明:

int    *p;    /* 一個整型的指針 */
double *p;    /* 一個 double 型的指針 */
float  *p;    /* 一個浮點型的指針 */
char   *p;    /* 一個字符型的指針 */

注意:不要忘記在指針類型和變量名中間還有一個 * 號,沒有這個 * 號,只是定義了一個普通變量,這也是普通變量聲明和指針聲明的區別之一;

3.指針和數組區別

指針和數組區別這里不再繼續啰嗦,可以直接參考文章:指針和數組區別

二.指針數組和數組指針區別

可能不少小伙伴很懵逼,又是指針數組又是數組指針的,指針數組和數組指針區別?? 傻分不清??

1.指針數組

指針數組:它實際上是一個數組,數組的每個元素存放的是一個指針類型的元素。

int* arr[5];
//優先級問題:[]的優先級比*高
//說明arr是一個數組,而int*是數組里面的內容
//這句話的意思就是:arr是一個含有5個int*的數組

int* arr[5] 表示由 5 個一維數組構成,也可以理解為是一個二維數組,如下圖:

C語言 指針數組和數組指針區別

示例代碼如下:

char a[3][8]={"gain","much","strong"}; //二維數組,由三個一維數組夠成
char *n[3]={"gain","much","strong"};   //指針數組,由三個一維數組夠成

2.數組指針

數組指針:它實際上是一個指針,該指針指向一個數組。

int (*arr)[5];
//由於[]的優先級比*高,因此在寫數組指針的時候必須將*arr用括號括起來
//arr先和*結合,說明arr是一個指針變量
//這句話的意思就是:指針arr指向一個大小為5個整型的數組。

int(*arr)[5] 表示指針 arr 指向一個大小為 5 個整型的數組,如下圖:

C語言 指針數組和數組指針區別

示例代碼如下:

/******************************************************************************************/
//@Author:猿說編程
//@Blog(個人博客地址): www.codersrc.com
//@File:C語言教程 - C語言 指針數組和數組指針區別
//@Time:2021/06/19 08:00
//@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累!
/******************************************************************************************/

 int a[4][5];
 int (*p)[5]=a;//指針p指向一個大小為5個整型的數組
*(p+i)是一維數組a[i][0]的地址;
(p+2)+3表示a[2][3]地址(第一行為0行,第一列為0列);
*(*(p+2)+3)表示a[2][3]的值;

三.猜你喜歡

  1. 安裝 Visual Studio
  2. 安裝 Visual Studio 插件 Visual Assist
  3. Visual Studio 2008 卸載
  4. Visual Studio 2003/2015 卸載
  5. C 語言邏輯運算符
  6. C 語言三目運算符
  7. C 語言逗號表達式
  8. C 語言 sizeof 和 strlen 函數區別
  9. C 語言 strcpy 和 strcpy_s 函數區別
  10. C 語言 memcpy 和 memcpy_s 區別
  11. C 語言 數組定義和使用
  12. C 語言 數組遍歷
  13. C 語言 數組下標越界
  14. C 語言 數組內存溢出
  15. C 語言 數組下標越界和內存溢出區別
  16. C 語言 二維數組定義和使用
  17. C 語言 二維數組行數和列數計算
  18. C 語言 指針聲明和定義
  19. C 語言 指針 p++ / p–
  20. C 語言 p++/§++/_(p++)/_p++
  21. C 語言 使用指針遍歷數組
  22. C 語言 指針和數組區別
  23. C 語言 數組指針
  24. C 語言 指針數組
  25. C 語言 指針數組和數組指針區別

未經允許不得轉載:猿說編程 » C 語言 指針數組和數組指針區別

本文由博客 - 猿說編程 猿說編程 發布!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM