第8章,數(shù)組

一維數(shù)組

數(shù)組名

在 C中淡诗,幾乎所有使用數(shù)組名的表達(dá)式中骇塘,數(shù)組名的值是一個指針常量(所以你不能給數(shù)組名重新賦一個新的地址)伊履,也就是數(shù)組第一個元素的地址;

但是數(shù)組和指針并不是等價的喲款违,數(shù)組具有一定數(shù)量的元素唐瀑,而指針只是一個標(biāo)量值;

只有兩種場合插爹,數(shù)組名并不用指針常量來表示哄辣,sizeof操作符時,返回的是整個數(shù)組的長度赠尾,而不是指向數(shù)組的指針的長度柔滔,取一個數(shù)組名的地址所產(chǎn)生的是一個指向數(shù)組的指針,而不是一個指向某個指針常量值的指針萍虽。

下標(biāo)引用

在使用下標(biāo)引用的地方睛廊,可以使用對等的指針?biāo)阈g(shù)再間接引用的表達(dá)式來代替。在使用指針表達(dá)式的地方杉编,也可以使用下標(biāo)表達(dá)式來代替超全。

提示:編譯器不會檢測數(shù)組下標(biāo)越界等錯誤(發(fā)送錯誤后發(fā)現(xiàn)得了不,這得看運(yùn)氣)邓馒,即使有的編譯器支持嘶朱,也可以選擇關(guān)閉。

指針和下標(biāo)的效率比較

下標(biāo)絕不會比指針更有效率光酣,但指針有時會比下標(biāo)更有效率疏遏。

詳情看C和指針145頁。

指針的效率

數(shù)組和指針

聲明數(shù)組參數(shù)

初始化

數(shù)組可以是靜態(tài)變量救军,也可以是自動變量财异,但自動變量每次進(jìn)入相應(yīng)局部都要賦值會浪費(fèi)時間。所以當(dāng)數(shù)組非常龐大的時候唱遭,就要考慮一下是不是有必要聲明為靜態(tài)變量戳寸。

1、不完整的初始化

int vector[5]={1,2,3}拷泽;后面少的兩個會默認(rèn)為0

2疫鹊、自動計算數(shù)組長度

int vector[]={1,2,3,4,5,6,7};

3司致、字符串是一個以'\0'結(jié)尾的字符數(shù)組拆吆,其聲明方式有兩種

(1)char message[]={'H','e','l','l','o',0};

(2)char message[]="hello";/*也許會有很多人仍未這里是一個字符串常量,其實(shí)這里只是一種初始化列表的快快速記法脂矫。那到底怎么和字符串常量進(jìn)行區(qū)分呢枣耀?這個就更具上下文環(huán)境,當(dāng)用于初始化一個字符數(shù)組時羹唠,他就是一個初始化列表奕枢,其他任何地方都代表一個字符串常量*/

辯一辯

char message[]="hello";

char *message2="hello";

多維數(shù)組

int c[6][10];

c只是在b的基礎(chǔ)上再增加一維,所以我們可以把c看作是一個包含6個元素的向量佩微,只不過它的每個元素本身是一個包含1-個整形元素的向量缝彬。

數(shù)組名

int array[3][10];

一維數(shù)組名的值是一個指針常量,它的類型是“指向元素類型的指針”哺眯,它指向數(shù)組的第一個元素谷浅。多維數(shù)組也一樣,只不過多維數(shù)組第一維實(shí)際上存的是另一個數(shù)組(也就是多維數(shù)組的第一維存儲的是另一個數(shù)組的首地址)奶卓,所以多維數(shù)組的數(shù)組名指的是存另一維數(shù)組首地址的數(shù)組首地址一疯。

所以*array,array[1]代表的是另一個(另一維)數(shù)組的首地址夺姑。

tips:array[3,4];指的是array[4]喲2333333333333

指向數(shù)組的指針

這個概念也就是多維數(shù)組中最外面那維數(shù)組存儲的值墩邀。

作為函數(shù)參數(shù)的多維數(shù)組

初始化

int matrix[2][3]={100,101,102,110,111,112};

int matrix[2][3]={

{100,101,102},

{110,111,112}

};

加不加花括號本身對初始化過程不會產(chǎn)生影響?但為什么還是要發(fā)明花括號這種聲明呢盏浙?一是為了觀察直接眉睹,二是加花括號

指針數(shù)組

int *api[10]:指針數(shù)組,每個數(shù)組元素存的是int *類型指針废膘;

int ?(*p)[10]:數(shù)組指針竹海,一個指針p指向的是一個數(shù)組的地址。

在矩陣中丐黄,每行必須與最長字符串的長度一樣長斋配,但它不需要任何指針。指針數(shù)組本身要占有空間灌闺,但每個指針?biāo)赶虻淖址加械膬?nèi)存空間就是字符串本身的長度艰争,沒有必要要和最長的一樣長。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末桂对,一起剝皮案震驚了整個濱河市园细,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌接校,老刑警劉巖猛频,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蛛勉,居然都是意外死亡鹿寻,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進(jìn)店門诽凌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來毡熏,“玉大人,你說我怎么就攤上這事侣诵×》ǎ” “怎么了狱窘?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長财搁。 經(jīng)常有香客問我蘸炸,道長,這世上最難降的妖魔是什么尖奔? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任搭儒,我火速辦了婚禮,結(jié)果婚禮上提茁,老公的妹妹穿的比我還像新娘淹禾。我一直安慰自己,他們只是感情好茴扁,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布铃岔。 她就那樣靜靜地躺著,像睡著了一般峭火。 火紅的嫁衣襯著肌膚如雪德撬。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天躲胳,我揣著相機(jī)與錄音蜓洪,去河邊找鬼。 笑死坯苹,一個胖子當(dāng)著我的面吹牛隆檀,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播粹湃,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼恐仑,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了为鳄?” 一聲冷哼從身側(cè)響起裳仆,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎孤钦,沒想到半個月后歧斟,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡偏形,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年静袖,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片俊扭。...
    茶點(diǎn)故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡队橙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情捐康,我是刑警寧澤仇矾,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站解总,受9級特大地震影響贮匕,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜倾鲫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一粗合、第九天 我趴在偏房一處隱蔽的房頂上張望萍嬉。 院中可真熱鬧乌昔,春花似錦、人聲如沸壤追。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽行冰。三九已至溺蕉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間悼做,已是汗流浹背疯特。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留肛走,地道東北人漓雅。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像朽色,于是被迫代替她去往敵國和親邻吞。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,515評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 指針是C語言中廣泛使用的一種數(shù)據(jù)類型葫男。 運(yùn)用指針編程是C語言最主要的風(fēng)格之一抱冷。利用指針變量可以表示各種數(shù)據(jù)結(jié)構(gòu); ...
    朱森閱讀 3,449評論 3 44
  • 數(shù)組在程序設(shè)計中梢褐,為了處理方便旺遮, 把具有相同類型的若干變量按有序的形式組織起來。這些按序排列的同類數(shù)據(jù)元素的集合稱...
    朱森閱讀 3,939評論 2 13
  • 一盈咳、框架 1趣效、Mac系統(tǒng)及常用工具、進(jìn)制;C數(shù)據(jù)類型猪贪、常量變量跷敬、運(yùn)算符、表達(dá)式、格式化輸入輸出 2西傀、關(guān)系運(yùn)算符斤寇、邏...
    師景福閱讀 695評論 0 2
  • 我可以跟在你身后 像影子追著光夢游 我可以等在這路口 不管你會不會經(jīng)過 每當(dāng)我為你抬起頭 連眼淚都覺得自由 有的愛...
    斯金納的貓閱讀 198評論 0 0
  • 有人說,“所謂‘成功’拥褂,無非就是解答題高手做對了選擇題”娘锁。 首先,成功是高手的事情饺鹃,起碼發(fā)生在那些“最...
    玄奇閱讀 185評論 0 0