C语言 数组指针 - C语言零基础入门教程
生活随笔
收集整理的這篇文章主要介紹了
C语言 数组指针 - C语言零基础入门教程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
- 一.簡介
- 1.數組
- 2.指針
- 3.指針和數組區別
- 二.數組指針
- 三.猜你喜歡
零基礎 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.指針和數組區別
指針和數組區別這里不再繼續啰嗦,可以直接參考文章:指針和數組區別
二.數組指針
數組指針:它實際上是一個指針,該指針指向一個數組。
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[5] = { 1, 2, 3, 4, 5 }; //步長為5的數組指針,即數組里有5個元素 int (*p)[5]; //把數組a的地址賦給p,則p為數組a的地址,則*p表示數組a本身 p = &a;//%p輸出地址, %d輸出十進制 //\n回車 //在C中,在幾乎所有使用數組的表達式中,數組名的值是個指針常量,也就是數組第一個元素的地址,它的類型取決于數組元素的類型。 printf("%p\n", a); //輸出數組名,一般用數組的首元素地址來標識一個數組,則輸出數組首元素地址 printf("%p\n", p); //根據上面,p為數組a的地址,輸出數組a的地址 printf("%p\n", *p); //*p表示數組a本身,一般用數組的首元素地址來標識一個數組 printf("%p\n", &a[0]); //a[0]的地址 printf("%p\n", &a[1]); //a[1]的地址 printf("%p\n", p[0]); //數組首元素的地址 printf("%d\n", **p); //*p為數組a本身,即為數組a首元素地址,則*(*p)為值,當*p為數組首元素地址時,**p表示首元素的值1 printf("%d\n", *p[0]); //根據優先級,p[0] 表示首元素地址,則*p[0]表示首元素本身,即首元素的值1 printf("%d\n", *p[1]); //為一個絕對值很大的負數,不表示a[1]...表示什么我還不知道//二維數組 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语言零基础入门教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Visual Studio 2008 完
- 下一篇: Pycharm 提示:this lice