日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言 数组指针 - C语言零基础入门教程

發布時間:2024/9/27 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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]的值;

三.猜你喜歡

  • 安裝 Visual Studio
  • 安裝 Visual Studio 插件 Visual Assist
  • Visual Studio 2008 卸載
  • Visual Studio 2003/2015 卸載
  • C 語言邏輯運算符
  • C 語言三目運算符
  • C 語言逗號表達式
  • C 語言 sizeof 和 strlen 函數區別
  • C 語言 strcpy 和 strcpy_s 函數區別
  • C 語言 memcpy 和 memcpy_s 區別
  • C 語言 數組定義和使用
  • C 語言 數組遍歷
  • C 語言 數組下標越界
  • C 語言 數組內存溢出
  • C 語言 數組下標越界和內存溢出區別
  • C 語言 二維數組定義和使用
  • C 語言 二維數組行數和列數計算
  • C 語言 指針聲明和定義
  • C 語言 指針 p++ / p–
  • C 語言 p++/§++/_(p++)/_p++
  • C 語言 使用指針遍歷數組
  • C 語言 指針和數組區別
  • C 語言 數組指針
  • C 語言 指針數組
  • 未經允許不得轉載:猿說編程 ? C 語言 數組指針

    總結

    以上是生活随笔為你收集整理的C语言 数组指针 - C语言零基础入门教程的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。