亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

C語言數(shù)組入門之?dāng)?shù)組的聲明與二維數(shù)組的模擬

2020-05-23 14:11:58
字體:
供稿:網(wǎng)友
這篇文章主要介紹了C語言數(shù)組入門之?dāng)?shù)組的聲明與二維數(shù)組的模擬,數(shù)組學(xué)習(xí)的同時也要相應(yīng)理解C語言指針的作用,需要的朋友可以參考下
 

語言中指針與數(shù)組這兩個概念之間的聯(lián)系是密不可分的,以至于如果不能理解一個概念,就無法徹底理解另一個概念。

C語言中的數(shù)組值得注意的地方有以下兩點(diǎn):

C語言中只有一維數(shù)組,而且數(shù)組的大小必須在編譯期就作為一個常數(shù)確定下來。然而,C語言中數(shù)組的元素可以是任何類型的對象,當(dāng)然也可以是另外一個數(shù)組。這樣,要“仿真”出一個多維數(shù)組就不是一件難事。
對于一個數(shù)組,我們只能夠做兩件事:確定該數(shù)組的大小,以及獲得指向該數(shù)組下標(biāo)為0的元素的指針。其他有關(guān)數(shù)組的操作,哪怕它們看上去是以數(shù)組下標(biāo)進(jìn)行運(yùn)算的,實(shí)際上都是通過指針進(jìn)行的。換句話說,任何一個數(shù)組下標(biāo)運(yùn)算都等同于一個對應(yīng)的指針運(yùn)算,因此我們完全可以依據(jù)指針行為定義數(shù)組下標(biāo)的行為。
一旦我們徹底弄懂了這兩點(diǎn)以及它們所隱含的意思,那么理解C語言的數(shù)組運(yùn)算就不過是“小菜一碟”。如果不清楚上述兩點(diǎn)內(nèi)容,那么C語言數(shù)組運(yùn)算就可能會給編程者帶來許多困惑。需要特別指出的是,編程者應(yīng)該具備將數(shù)組運(yùn)算與它們對應(yīng)的指針運(yùn)算融匯貫通的能力,在思考有關(guān)問題時大腦中對這兩種運(yùn)算能夠自如切換。毫無滯礙。

任何程序設(shè)計語言中都內(nèi)建有索引運(yùn)算,在C語言中索引運(yùn)算是以指針?biāo)阈g(shù)的形式來定義的。

如何聲明一個數(shù)組

要理解C語言中數(shù)組的運(yùn)作機(jī)制,我們首先必須理解如何聲明一個數(shù)組,例如:

int a[3];

這個語句聲明了a是一個擁有了3個整型元素的數(shù)組,類似的,

struct{ int p[4]; double x;}b[17];

聲明了b是一個擁有17個元素的數(shù)組,其中每個元素都是一個結(jié)構(gòu),該結(jié)構(gòu)中包括了一個擁有4個整形元素的數(shù)組(命名為p)和一個雙精度類型的變量(命名為x)。

現(xiàn)在考慮下面的例子:

int calendar[12][31];

這個語句聲明了calendar是一個數(shù)組,該數(shù)組擁有12個數(shù)組類型的元素,其中每個元素都是擁有31個整型元素的數(shù)組(而不是一個擁有31個數(shù)組類型的元素的數(shù)組,其中每個元素又是一個擁有12個整型數(shù)組元素的數(shù)組)因此sizeof(calendar)的值是372(31*12)與sizeof(int)的乘積。

如果calendar不是用于sizeof的操作數(shù),而是用于其他的場合,那么calendar總是被替換成一個指向calendar數(shù)組的起始元素的指針。要理解上面這句話的含義,我們首先必須理解有關(guān)指針的一些細(xì)節(jié)。

二維數(shù)組模擬
*a即數(shù)組a中下標(biāo)為0的元素的引用。例如,我們可以這樣寫:

*a=84;

這個語句將數(shù)組a中下標(biāo)為0的元素的值設(shè)置為84.同樣道理,*(a+1)數(shù)組a中下標(biāo)為1的的元素的引用,以此類推,概而言之,*(a+i)即數(shù)組中下標(biāo)為i的元素的引用,這種寫法是如此常用,因此被簡記為a[i].

正是這一概念讓C語言新手難于理解,實(shí)際上,由于a+i與i+a的含義一樣,因此a[i]和i[a]也具有同樣的含義。也許某些匯編語言程序員會發(fā)現(xiàn)后一種寫法很熟悉,但我們絕對不推薦這種寫法。

現(xiàn)在我們可以考慮二維數(shù)組了,正如前面所討論的,它實(shí)際上是以數(shù)組為元素的數(shù)組,盡管我們也可以完全依據(jù)指針編寫操縱一維數(shù)組的程序,這樣做在一維情形下并不困難,但是對于二維數(shù)組從記法上的便利性來說采用下述形式就幾乎是不可替代了。還有,如果我們僅僅使用指針來操縱二維數(shù)組,我們將不得不與C語言中最為“晦暗不明”的部分打交道,并常常遭遇到潛伏著的編譯器bug。

讓我們回過頭來再看幾個聲明:

int calendar[12][31];int *pint i;

然后考一考自己,calendar[4]的含義是什么?

因?yàn)閏alendar是一個有著12個數(shù)組類型元素的數(shù)組,它的每個數(shù)組類型元素又是一個有著31個整型數(shù)組,所以calendar[4]是 calendar數(shù)組的第五個元素,是calendar數(shù)組中12個有著31個整型元素的數(shù)組之一,因此calendar[4]的行為也就表現(xiàn)一個有著31個整形元素的數(shù)組的行為,例如sizeof(calendar[4])的結(jié)果是31與sizeof(int)的乘積。

p=calendar[4];

這個語句使指針p指向了數(shù)組calendar[4]中下標(biāo)為0的元素。如果calendar[4]是一個數(shù)組,我們當(dāng)然可以通過下標(biāo)的形式來指定這個數(shù)組中的元素,就像下面這樣:

i = calendar[4][7];

我們確實(shí)也可以這樣做。還是與前面類似的道理,這個語句可以寫成下面這樣而表達(dá)式的意思保持不變:

i = *(calendar[4]+7);

這個語句還可以進(jìn)一步寫成:

i = *(*(calendar+4)+7);

從這里我們不難發(fā)現(xiàn),用方括號的下標(biāo)形式很明顯地要比指針來表達(dá)簡便得多。下面我們再看:

p = calendar;

這個語句是非法的,因?yàn)閏alendar是一個二維數(shù)組,即數(shù)組的數(shù)組,在此處的上下文中使用calendar名稱會將其轉(zhuǎn)化為一個指向數(shù)組的指針,而p是一個指向整型變量的指針,這個語句試圖將一個類型的指針賦值給另一種類型的指針,所以是非法的。

很顯然,我們需要一種聲明指向數(shù)組的指針的方法,經(jīng)過了前面對類似問題不厭其煩的討論,構(gòu)造出下面的語句應(yīng)該不需要廢多大力氣:

int (*ap)[31];

這個語句的效果是,聲明了*ap是一個擁有三十一個整型元素的數(shù)組ap就是一個指向這樣的數(shù)組的指針,因而我們可以這樣寫:

int(*monthp)[31];Monthp = calendar;

這樣,monthp將指向數(shù)組calendar的第一個元素,也就是數(shù)組calendar的12個有著31個元素的數(shù)組類型元素之一。

假定在新的一年開始時,我們需要清空calendar數(shù)組,用下標(biāo)形式可以很容易做到:

int month;for(month=0;month < 12;month++){ int day;  for(day=0; day < 31;day++)   calendar[month][day]=0;}

上面的代碼段如果才用指針應(yīng)該如何表示呢?我們很容易地把 calendar[month][day]=0; 表示為*(*(calendar+month)+day)=0;

但是真正有關(guān)的部分是哪些呢?

如果指針monthp指向一個擁有31個整型元素的數(shù)組,而calendar的元素也是一個擁有31個整型元素的數(shù)組,因此就像是在其他情況中我們可以使用一個指針遍歷一個數(shù)組一樣,這里我們同樣可以使用指針monthp以步進(jìn)的方式遍歷數(shù)組calendar:

int (*monthp)[31];for(monthp=calendar;monthp < &calendar[12];monthp++){ int *dayp; for(dayp=*monthp;dayp < &(*monthp)[31];dayp++) *dayp=0;}

 



發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
日韩欧美中文字幕一区二区三区| 伊人久久久久久久久久| 人妻av无码一区二区三区| 麻豆精品蜜桃| 色乱码一区二区三区88| baoyu777.永久免费视频| 一本色道久久综合狠狠躁的推荐| 天堂在线中文视频| 26uuu欧美| 亚洲黄色小说网站| 玖玖在线免费视频| 国产在线激情视频| 免费看一级大黄情大片| 精华区一区二区三区| 9.1在线观看免费| 日本不卡视频在线| 高清电影一区| 国产高清视频在线观看| 日韩视频一区二区三区在线播放| 中文在线官网天堂| 色哟哟精品一区| 羞羞的视频在线| 亚洲午夜精品一区二区三区| 久久精品国产久精国产思思| 999www成人| 正在播放久久| 国产精品99久久久久久似苏梦涵| 亚洲精品中文字幕在线播放| 一区二区三区伦理片| …久久精品99久久香蕉国产| 久久免费福利| 亚洲综合av一区| 挪威xxxx性hd极品| 国产精品久久国产愉拍| 老司机av网站| 欧美影院在线播放| 欧美一级欧美一级| 久久久久久久一区二区三区| 中文国产成人精品久久一| 精品免费一区二区三区| 天堂中文在线观看视频| 国产亚洲高清一区| 欧美三级韩国三级日本三斤在线观看| 人猿泰山h版在线观看| 日韩女优一区二区| 亚洲尤物av| 香蕉视频免费网站| 成人激情视频免费在线| 91福利资源站| 中文资源在线网| 欧美日韩一区二区三区不卡视频| 四虎影视国产精品| 国产一区二区欧美| 少妇精品无码一区二区免费视频| 欧美成人免费全部观看天天性色| 正在播放一区二区三区| 91国语精品自产拍| 日韩精品无码一区二区三区久久久| 国产精品久久久久久久久久久久久久久久| 欧美福利视频网站| 亚洲一级一级97网| 视频精品二区| 成人自拍视频| 国产日韩在线不卡| 影音先峰男人站| 国产成人午夜高潮毛片| 色综合天天爱| 欧美日产一区二区三区在线观看| 欧美日韩在线二区| 香蕉av在线播放| 精品综合在线| 51ⅴ精品国产91久久久久久| 91免费日韩| 一本久久a久久免费精品不卡| 在线免费观看一区二区| 日本999视频| 日韩国产大片| 亚洲AV无码一区二区三区少妇| 思思99精品视频在线观看| 中文字幕av免费专区久久| 91福利在线视频| 亚洲国产古装精品网站| 欧美影院三区| 欧美一级午夜免费电影| 欧美xxxx免费虐| 一区二区三区四区精品| 日韩欧美在线电影| av在线日韩| 国产一区日韩| brazzers欧美精品| 男人插入女人视频| 免费在线观看黄| 香港欧美日韩三级黄色一级电影网站| 国内伊人久久久久久网站视频| 在线观看视频免费一区二区三区| 亚洲精品国产suv| 中文字幕亚洲综合久久五月天色无吗''| 国产激情在线| 91精品xxx在线观看| 悠悠资源网久久精品| 日韩欧美在线视频观看| 亚洲视频 欧美视频| 中文在线免费二区三区| 日日爽夜夜爽| 欧美一区二区三区视频免费| 91中文字幕一区| 嫩草影院入口一二三免费| japanese23hdxxxx日韩| 亚洲aaa在线观看| 免费黄色片网站| 国产一区二区三区观看| av天在线播放| 日韩精品有码在线观看| 99re6在线视频精品免费| 亚洲国产精品推荐| 你懂的视频在线观看资源| 欧美精品aaa| 国产无遮挡一区二区三区毛片日本| 欧美三级免费观看| 精品一区二区三区蜜桃| 精品在线观看国产| 亚洲国产无码精品| 三级视频网站在线观看| 免费看又黄又无码的网站| 性高潮免费视频| 国模极品一区二区三区| 婷婷5月激情5月| 久久不见久久见国语| 性欧美videos白嫩| 国产精品久久在线| 久久久久99精品成人片试看| 欧美高清另类hdvideosexjaⅴ| 99视频国产精品免费观看| 97在线免费观看| 日本国产中文字幕| 日本大片在线观看| yjizz国产| 欧洲成人性视频| 久久精品天堂| 天堂а√在线最新版中文在线| 成人一级片网站| 免费在线激情视频| 色婷婷热久久| 久久精品一区八戒影视| 欧美高清在线视频| 亚洲一区高清| 精品欧美午夜寂寞影院| 男女羞羞在线观看| 日韩成人一区二区三区| 国产97免费视| 一区二区国产精品视频| 国产精品久久久久永久免费看| 成人看片黄a免费看在线| 隔壁老王国产在线精品| 麻豆视频一区| a在线视频观看| 久久久久国产精品视频| 亚洲欧洲日韩女同| bt7086福利一区国产| 欧美精品 - 色网| 涩涩视频在线观看下载| 亚洲日本aⅴ片在线观看香蕉| 一区二区三区高清视频在线观看| 中文字幕字幕中文在线中不卡视频| 17c精品麻豆一区二区免费| 成人影院在线播放| 日韩av在线电影观看| 要久久爱电视剧全集完整观看| 18岁视频在线观看| 日韩在线视频免费| 米奇精品一区二区三区| 欧美国产一区二区三区激情无套| 欧美超碰在线观看| 国产高清一区二区三区| 波多野结衣视频在线看| 精品国产一区二区三区四区vr| 国产精品电影久久久久电影网| 色婷婷亚洲婷婷| 亚洲成人在线观看视频| 亚洲影音先锋| 欧美精品久久99久久在免费线| 蜜桃极品自拍av| 一级日韩一级欧美| 日韩精品一区二区三区swag| 欧美做爰性欧美大fennong| 精品一级毛片| 宅男噜噜噜66国产免费观看| 日韩成人一区二区| 黄在线观看在线播放720p| 亚洲男男av| 中文字幕一区二区在线播放| 成人免费在线观看入口| 在线观看欧美一区二区| 无码日韩人妻精品久久蜜桃| 九九精品视频在线看| 日韩成人在线观看视频| 亚洲乱码一区二区三区| 免费在线不卡视频| 日韩在线观看电影完整版高清免费悬疑悬疑| 国产精品美女久久久久久久网站| 精品视频第一区| 国产探花在线视频| 黄色激情网站| 亚洲澳门在线| 国偷自拍第113页| 亚洲成人在线免费| 嫩草影院懂你的影院| 2024亚洲男人天堂| 亚洲一级电影| vam成人资源在线观看| 人妻无码视频一区二区三区| 女人被男人躁得好爽免费视频| 欧洲亚洲免费视频| 亚洲精品乱码久久久久久不卡| 免费黄网站在线| 日韩电影一二三区| 一级黄色片在线| 国产精品无码久久av| 亚洲小说欧美激情另类| 137大胆人体在线观看| 在线观看欧美一区| 亚洲国产三级网| 亚洲一区二区不卡视频| 国产在线高清理伦片a| 日韩在线卡一卡二| 成人免费激情视频| 国产麻豆精品theporn| 欧美中文一区二区三区| 亚洲精品日韩一| 蜜臀av免费在线观看| 一区二区三区精品视频在线观看| 日韩**中文字幕毛片| 欧美亚洲成人免费| 污视频软件在线观看| 国产一级性生活| 久久久久久香蕉| 91精品视频一区二区| 国产原厂视频在线观看| 中文字幕av导航| 亚洲精品国产福利| 久久国产精品99久久人人澡| 亚洲成人av在线| www.久久精品视频| 精品对白一区国产伦| 女人裸体性做爰全过| 啦啦啦啦免费高清视频在线观看1| 欧洲免费av| 91禁男男在线观看| 精品亚洲一区二区三区在线观看| 国产三区四区在线观看| 国产乱精品一区二区三区| 日韩精品第二页| 欧美疯狂爱爱xxxxbbbb| 美女精品在线观看| 清纯唯美综合亚洲| 精品人妻伦九区久久aaa片| 色婷婷狠狠五月综合天色拍| 成人直播在线| 91视频最新入口| 久久99精品国产麻豆婷婷| **女人18毛片一区二区| palipali轻量版永久网页入口| 狂野欧美xxxx韩国少妇| 久久91超碰青草是什么| 翔田千里一区| 国产原创欧美精品| wwww国产精品欧美| 国产麻豆精品在线| 黄色网页在线看| 日本亚洲欧美在线| 伊人色综合久久天天人手人婷| 亚洲美女久久久| 亚洲欧美综合乱码精品成人网| 亚洲精品久久久久久久久久久久久| 国产精品亚洲欧美在线播放| 小草av在线播放| 亚洲黄色高清| 一本到不卡精品视频在线观看| 国产亚洲一区二区三区不卡| 99国产精品免费视频| 免费看成人哺乳视频网站| 色琪琪综合男人的天堂aⅴ视频| 国产精欧美一区二区三区白种人| 精品人妻一区二区三区日产乱码卜| 2023国产精华国产精品| 亚洲AV无码乱码国产精品牛牛| 免费在线观看的毛片| 日本一欧美一欧美一亚洲视频| 精品国产一区二区三区久久久樱花| free性中国hd国语露脸| 男人的天堂久久精品| 卡一精品卡二卡三网站乱码| 91视频一区二区三区| 欧美精品乱码视频一二专区| 三级在线观看一区二区| 国产精品午夜在线观看| 99成人在线| 亚洲一区二三| 可骚可骚的黄视频网站| 伦理片一区二区三区| 亚洲高清免费观看高清完整版| 日韩不卡免费视频| 97精品视频在线| 日韩高清av一区二区三区| 欧美亚洲大陆| 亚洲国产清纯| 精品第一国产综合精品aⅴ| 国产精品一级无码| 亚洲色图另类专区| 成人高清在线观看免费| 色偷偷www8888| 51精品秘密在线观看| 午夜大尺度福利视频| 欧美性猛交xxxx乱大交| 国产精品69xx| 男人插女人下面免费视频| 大地资源第二页在线观看高清版| 成人激情av网| 欧美 国产 小说 另类| 日本丰满少妇一区二区三区| 中文字幕精品一区二区三区精品| 黄色动漫免费看| free性m.freesex欧美| 2020欧美日韩在线视频| 欧美一级黄视频| 男女激情视频网站| 国产亚洲精久久久久久无码77777| 精品av久久久久电影|