C语言 指针数组和数组指针区别 - C语言零基础入门教程
生活随笔
收集整理的這篇文章主要介紹了
C语言 指针数组和数组指针区别 - C语言零基础入门教程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
- 一.簡介
- 1.數組
- 2.指針
- 3.指針和數組區別
- 二.指針數組和數組指針區別
- 1.指針數組
- 2.數組指針
- 三.猜你喜歡
零基礎 C/C++ 學習路線推薦 : C/C++ 學習目錄 >> C 語言基礎入門
一.簡介
1.數組
數組中的每個元素都有一個序號,這個序號從 0 開始,稱為下標index,例如,a[0] 表示第 1 個元素,a[3] 表示第 4 個元素。數組是一個整體,它的內存是連續的,內存示意圖:
2.指針
指針很靈活,它可以指向任意類型的數據。指針的類型說明了它所指向地址空間的內存,以下是有效的指針聲明:
int *p; /* 一個整型的指針 */ double *p; /* 一個 double 型的指針 */ float *p; /* 一個浮點型的指針 */ char *p; /* 一個字符型的指針 */注意:不要忘記在指針類型和變量名中間還有一個 * 號,沒有這個 * 號,只是定義了一個普通變量,這也是普通變量聲明和指針聲明的區別之一;
3.指針和數組區別
指針和數組區別這里不再繼續啰嗦,可以直接參考文章:指針和數組區別
二.指針數組和數組指針區別
可能不少小伙伴很懵逼,又是指針數組又是數組指針的,指針數組和數組指針區別?? 傻分不清??
1.指針數組
指針數組:它實際上是一個數組,數組的每個元素存放的是一個指針類型的元素。
int* arr[5]; //優先級問題:[]的優先級比*高 //說明arr是一個數組,而int*是數組里面的內容 //這句話的意思就是:arr是一個含有5個int*的數組int* arr[5] 表示由 5 個一維數組構成,也可以理解為是一個二維數組,如下圖:
示例代碼如下:
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 個整型的數組,如下圖:
示例代碼如下:
/******************************************************************************************/ //@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]的值;三.猜你喜歡
未經允許不得轉載:猿說編程 ? C語言 指針數組和數組指針區別
總結
以上是生活随笔為你收集整理的C语言 指针数组和数组指针区别 - C语言零基础入门教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 文件读写操作-Python
- 下一篇: C语言 文件读写 ferror 函数 -