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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

c语言之——指针数组与数组指针

發布時間:2024/1/18 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言之——指针数组与数组指针 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、指針數組和數組指針的定義

1. 指針數組:是指一個數組里面裝著指針,也即指針數組是一個數組;

定義形式:int *a[10];

說明:[]的優先級高于*,該定義形式應該理解為:int * (a[10]);括號里面說明a是一個數組,包含了10個元素,括號外面說明每個元素的類型為int *。

如圖所示:

2. 數組指針:是指一個指向數組的指針,它其實還是一個指針,只不過是指向數組而已;

定義形式:int (*p)[10]; 其中,由于[]的優先級高于*,所以必須添加(*p).

說明:括號中的*表明 p 是一個指針,該指針變量保存的是一個數組的首地址,它指向一整個數組(),數組的類型為int[10],這正是 a 所包含的每個一維數組的類型。

在32位系統下任何類型的指針所占內存大小都為4個字節,至于它指向的數組占多少字節,具體要看數組的大小。總之,數組指針即為“指向數組的大小”
?

總結:主要看后面的兩個字是什么(前面是修飾作用),因此指針數組是數組,而數組指針是指針。
?

二、指針數組和數組指針的使用

1. 指針數組的使用

(1)最簡單的使用方式:

#include <stdio.h> int main(){int a = 16, b = 932, c = 100;//定義一個指針數組int *arr[3] = {&a, &b, &c};//也可以不指定長度,直接寫作 int *arr[]//parr 是指向數組 arr 的指針,確切地說是指向 arr 第 0 個元素的指針,//它的定義形式應該理解為int *(*parr),括號中的*表示 parr 是一個指針,括號外面的int *表示 parr 指向的數據的類型。//arr 第 0 個元素的類型為 int *,所以在定義 parr 時要加兩個 *。int **parr = arr;printf("%d, %d, %d\n", *arr[0], *arr[1], *arr[2]);//16, 932, 100printf("%d, %d, %d\n", **(parr+0), **(parr+1), **(parr+2));//16, 932, 100return 0; }

?(2)對多個字符串進行處理:

#include <stdio.h> int main(){char *str[3] = {"c.biancheng.net","C語言中文網","C Language"};printf("%s\n%s\n%s\n", str[0], str[1], str[2]);/*運行結果:c.biancheng.netC語言中文網C Language*/return 0; }

解釋:str數組存儲了兩個指針,第一個指針指向了字符串"c.biancheng.net",第二個指針指向了字符串"C語言中文網",第三個指針指向了字符串"C Language"。需要注意的是,字符數組 str 中存放的是字符串的首地址,不是字符串本身,字符串本身位于其他的內存區域,和字符數組是分開的。

.

2.數組指針的使用

(1)對于一維數組:

int main(void) {char a[5]={'A','K','C','G','L'};?? ?char (*p)[5]=&a;//&a代表的是整個數組的首地址//char (*p)[5]=a;這樣是錯誤的,因為a代表第一個元素的首地址printf("%c %c %c",**p,*(*p+1),*(*p+3));//輸出:A K Greturn 0; }

說明:a代表的是第一個元素的地址,即:&a[0],而&a代表的是整個數組的地址a+1代表的是下一個元素的地址,即&a[1],而&a+1代表的是向后移動5個字節的地址。這里為什么用的二級指針呢?因為p=&a,*p即為第一個元素的地址,再**p即輸出了第一個元素。同理,*(*p+1),*(*p+3)輸出第二個元素,第四個元素。


(2)對于二維數組:

二維數組用行指針定義

p++操作會使p指向下一行的首地址,這是因為p是行指針,指向的是一行。我們可以用sizeof(*p)測試p指向的內容的大小:

#include <stdio.h> int main() {int a[3][4] = { {0, 1, 2, 3}, {4, 5, 6, 7}, {8, 9, 10, 11} };int(*p)[4];//p指向數組 a 的開頭,也即第 0 行;p+1前進一行,指向第 1 行。int i,j;p=a;for(i=0; i<3; i++){for(j=0; j<4; j++) printf("%2d ",*(*(p+i)+j));//*(*(p+i)+j)表示第 i 行第 j 個元素的值。printf("\n");}/*0 1 2 34 5 6 78 9 10 11*/return 0; }

?

?

ref:

https://blog.csdn.net/weixin_41923658/article/details/88066916

https://blog.csdn.net/men_wen/article/details/52694069

https://blog.csdn.net/xia__mu/article/details/99879877

總結

以上是生活随笔為你收集整理的c语言之——指针数组与数组指针的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 女人免费视频 | 这里只有精品视频在线 | 亚洲欧美国产精品专区久久 | 国产精品久久久久久一区二区 | 久久婷综合 | 俺去草| 视频在线一区二区三区 | 亚洲天堂视频网站 | 亚洲第一女人av | 色播在线观看 | 亚洲色图20p| 亚洲美女在线播放 | 天天摸夜夜添狠狠添婷婷 | 日产精品久久久一区二区 | 91亚洲国产成人久久精品麻豆 | 国产网站在线看 | 欧美性生活免费视频 | 波多野结衣福利 | 亚洲国产成人无码av在线 | 久久中文字幕视频 | 91亚洲精品久久久蜜桃 | 97久久人人超碰caoprom欧美 | 一级片免费视频 | 欧美性受xxx黑人xyx性爽 | 嫩草av久久伊人妇女超级a | 午夜精品久久久久久久第一页按摩 | 亚洲二区在线视频 | 亚洲女成人图区 | 久久久亚洲一区二区三区 | 精品无码av一区二区三区不卡 | 亚洲天堂成人在线 | 爽妇综合网 | 夜夜综合| a级片一区二区 | 青青99 | 免费一级淫片aaa片毛片a级 | 国产精品a级 | 亚洲一区二区三区成人 | 国产精品v亚洲精品v日韩精品 | 欧美日韩精品久久久 | 久久6视频 | 自拍偷拍在线视频 | 免费看a级片| 成人av网站在线播放 | 香蕉视频黄在线观看 | 巨茎大战刘亦菲 | 成人一区二区在线 | xxx日韩| 91xxxxx| 91日韩一区二区 | 国产精品5区 | 中文字幕人妻一区二区在线视频 | 午夜精品久久久久久久久 | 91精品视频免费看 | 亚洲在线观看视频 | 亚洲最大视频网 | 性欧美www| 国产伦精品免费视频 | 国产亚洲色婷婷久久 | 国产精品人成 | 色眯眯av| 国产精品一区二区入口九绯色 | 天堂а在线中文在线新版 | 尤物视频在线观看国产性感 | 91最新入口| 午夜精品久久久内射近拍高清 | 欧美一区三区三区高中清蜜桃 | 国产成人无码aa精品一区 | 国产亚洲精品美女 | 特色特色大片在线 | 琪琪色18 | 免费看黄色的视频 | 亚洲偷拍一区 | 干极品美女 | 一区二区三区四区在线观看视频 | 激情欧美在线 | 欧洲久久久久 | 可以免费看的黄色 | 日韩精品视频一区二区 | 福利影院在线 | 黄色片地址 | 一区二区视频国产 | 久久国产综合 | 国产精品一区二区在线播放 | 久久伊人国产 | 久久婷婷一区 | 毛片基地站 | 久久久久久久久久久久久久久久久 | youjizz麻豆| 国产精品91av | 四月婷婷 | mm131丰满少妇人体欣赏图 | 91网在线播放 | 在线观看岛国av | 性色av免费观看 | 天天天天天天干 | 黄色片欧美 | 国产深夜福利在线 | 美女免费看片 |