指針變量

有一段時(shí)間沒(méi)有總結(jié)了缀匕,一是最近比較忙(借口纳决,時(shí)間就像海綿,擠擠還是會(huì)冒水的)乡小,而來(lái)確實(shí)還沒(méi)有進(jìn)入真正的簡(jiǎn)書(shū)習(xí)慣阔加。不廢話了,進(jìn)入正題满钟,總結(jié)下指針的學(xué)習(xí)胜榔,本科就接觸過(guò)這東西,可惜那時(shí)根本沒(méi)有認(rèn)真湃番,其實(shí)那時(shí)學(xué)校就是個(gè)一般二本夭织,以為讀了也是白讀,其實(shí)不是的吠撮,其實(shí)在任何學(xué)校尊惰,只要你愿意,你可以學(xué)到基本的很多一些東西,現(xiàn)在來(lái)說(shuō)弄屡,以前一知半解的東西可以好好學(xué)學(xué)了题禀。
35602b7fb6c39ef3976f1780a037e273.jpg

說(shuō)到指針,其實(shí)很多人會(huì)想到指南針琢岩,那么指南針其實(shí)是用來(lái)指明方向的投剥,當(dāng)然指針也是用來(lái)指明方向和地址的,說(shuō)白了担孔,一個(gè)指針也就是內(nèi)存里的地址江锨,用來(lái)存儲(chǔ)數(shù)據(jù)的,我們可以利用指針?biāo)竷?nèi)存空間去隨意調(diào)用數(shù)據(jù)糕篇,非常方便啄育。

1>一維數(shù)組的定義

*:作為指針的標(biāo)志,以前第一次學(xué)的時(shí)候基本是走過(guò)場(chǎng)拌消,這次學(xué)習(xí)之前很多學(xué)生一直糾結(jié)指針不好理解挑豌,對(duì)此可能因人而異吧。首先如何去定義一個(gè)指針墩崩,對(duì)于定義一個(gè)指針氓英,主要包括類(lèi)型說(shuō)明符+"*"+變量名。
例如:定義一個(gè)整型的指針變量如下:
int *p=&a;
p=&a或者p=&a[0];
在這里是把一個(gè)數(shù)a的地址給了p鹦筹,這樣就可以通過(guò)地址p來(lái)調(diào)用a這個(gè)元素铝阐。
又如定義了一個(gè)一維數(shù)組arr,則p=&arr[0],數(shù)組首個(gè)元素的地址就是該數(shù)組的地址铐拐。
int arr[]={1,2,3,4,5,6};
for(i=0;i<6;i++)
{
printf("arr[%d]=%d\n",i,*(arr+i));
printf("arr[%d]的地址=%p\n",i,arr+i);
}
當(dāng)然獲得數(shù)組的每個(gè)元素還可以通過(guò)指針變量p來(lái)尋址徘键,如
printf("arr[%d]的地址=%p\n",i,p++);
這樣就可以輸出所有元素在內(nèi)存的地址。

2>二維數(shù)組的定義:數(shù)據(jù)類(lèi)型(int float char double)遍蟋,數(shù)組名[行的大小][列的大小]

當(dāng)然對(duì)于二維數(shù)組的定義吹害,我們可以看作是多個(gè)一維數(shù)組構(gòu)成二維數(shù)組的定義方式有以下幾種:
1>二維數(shù)組的初始化
int arr1[2][3]={{1,2,3},{4,5,6}};
2>如果沒(méi)有完全數(shù)組元素,用0補(bǔ)全
int arr2[2][3]={{1,2},{4,5}};
3>int arr3[2][3]={1,2,3,4,5,6};
4>int arr4[2]['a']={1,2,3};
5>根據(jù)后面的列數(shù)推算行數(shù)大小
int arr5[][3]={1,2,3,4,5};
基于第五種方式虚青,以下寫(xiě)法是錯(cuò)誤的
int arr6[2][]={1,2,3,4};
6>int arr6[2][3]={{[1]=2},{[1]=5}};

2.1>二維數(shù)組定義時(shí)需要注意的點(diǎn)位:

1>行號(hào)和列號(hào)不能以變量存在它呀,必須要以常量存在;
2>行號(hào)可以省挟憔,列號(hào)不能省;

3>二維數(shù)組的訪問(wèn)

數(shù)組元素的訪問(wèn):數(shù)組名[行下標(biāo)][列下標(biāo)]钟些,這可能是最常見(jiàn)的訪問(wèn)方式,并且0<=行下標(biāo)<行的大小绊谭,0<=列下標(biāo)<列的大小政恍,如對(duì)arr1進(jìn)行訪問(wèn),訪問(wèn)arr1任何一個(gè)元素达传,則只需要在主函數(shù)里輸入以下代碼:

33I58PIC6eQ_1024.jpg
for(i=0;i<2,i++)
{
      for(j=0;j<3,j++)
      {
            printf("arr1[%d][%d]=%d\t",i,j,arr1[i][j]);
      }
      printf("\n");
}

其實(shí)二維數(shù)組在內(nèi)存中是連續(xù)存儲(chǔ)的篙耗,可以用以下代碼證明:在上述代碼中加這句

printf("arr1[%d][%d]=%p\t",i,j,&arr1[i][j]);

除了以上尋址方式迫筑,二維數(shù)組還有多種方式,對(duì)于訪問(wèn)第i行第j列的地址宗弯,
&arr1[i][j]=arr1[i]+j=*(arr1+i)+j
而對(duì)應(yīng)的第i行第j列的值是arr1[i][j]=*(arr1[i]+j)=*(*(arr1+i)+j)
二維數(shù)組名保存的是第0行第0列的元素的地址
第i行第0列元素的地址:&arr1[i][0]脯燃,arr1+i,arr1[i]蒙保,*(arr1+i)

4>指向多維數(shù)組的指針變量

可定義為:int (*p)[4]
先計(jì)算()辕棚,表明它是一個(gè)指針變量,再算[]邓厕,代表這個(gè)指針將來(lái)指向一個(gè)大小為4的一維數(shù)組逝嚎。
int *p[4]
先算[],表明它是一個(gè)數(shù)組详恼,再算*补君,表明將來(lái)這個(gè)數(shù)組里面存的是指針變量

int a[2][3]={1,2,3,4,5,6,7,8,9};
int *pa[3]={a[0],a[1],a[2]};
int *p=a[0]

這樣pa是一個(gè)指針數(shù)組,a[0],a[1],a[2]均為指針變量昧互。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末挽铁,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子敞掘,更是在濱河造成了極大的恐慌叽掘,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,627評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件玖雁,死亡現(xiàn)場(chǎng)離奇詭異够掠,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)茄菊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)赊堪,“玉大人面殖,你說(shuō)我怎么就攤上這事】蘖” “怎么了脊僚?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,346評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)遵绰。 經(jīng)常有香客問(wèn)我辽幌,道長(zhǎng),這世上最難降的妖魔是什么椿访? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,097評(píng)論 1 300
  • 正文 為了忘掉前任乌企,我火速辦了婚禮,結(jié)果婚禮上成玫,老公的妹妹穿的比我還像新娘加酵。我一直安慰自己拳喻,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,100評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布猪腕。 她就那樣靜靜地躺著冗澈,像睡著了一般。 火紅的嫁衣襯著肌膚如雪陋葡。 梳的紋絲不亂的頭發(fā)上亚亲,一...
    開(kāi)封第一講書(shū)人閱讀 52,696評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音腐缤,去河邊找鬼捌归。 笑死,一個(gè)胖子當(dāng)著我的面吹牛柴梆,可吹牛的內(nèi)容都是我干的陨溅。 我是一名探鬼主播,決...
    沈念sama閱讀 41,165評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼绍在,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼门扇!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起偿渡,我...
    開(kāi)封第一講書(shū)人閱讀 40,108評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤臼寄,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后溜宽,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體吉拳,經(jīng)...
    沈念sama閱讀 46,646評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,709評(píng)論 3 342
  • 正文 我和宋清朗相戀三年适揉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了留攒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,861評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡嫉嘀,死狀恐怖炼邀,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情剪侮,我是刑警寧澤拭宁,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站瓣俯,受9級(jí)特大地震影響杰标,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜彩匕,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,196評(píng)論 3 336
  • 文/蒙蒙 一腔剂、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧驼仪,春花似錦桶蝎、人聲如沸驻仅。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,698評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)噪服。三九已至,卻和暖如春胜茧,著一層夾襖步出監(jiān)牢的瞬間粘优,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,804評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工呻顽, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留雹顺,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,287評(píng)論 3 379
  • 正文 我出身青樓廊遍,卻偏偏與公主長(zhǎng)得像嬉愧,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子喉前,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,860評(píng)論 2 361

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

  • 指針是C語(yǔ)言中廣泛使用的一種數(shù)據(jù)類(lèi)型没酣。 運(yùn)用指針編程是C語(yǔ)言最主要的風(fēng)格之一。利用指針變量可以表示各種數(shù)據(jù)結(jié)構(gòu)卵迂; ...
    朱森閱讀 3,451評(píng)論 3 44
  • 二級(jí)指針與二維數(shù)組 char *string[] ={"abc","abcd","acf"};char str...
    去留無(wú)意hmy閱讀 631評(píng)論 0 4
  • 作業(yè)整理裕便; 指針的基本的結(jié)構(gòu)與基礎(chǔ)知識(shí)整理; 作業(yè)講解:(1) 將2~100之間的素?cái)?shù) 保存到數(shù)組中见咒,并遍歷輸出偿衰,...
    比莉吉恩閱讀 369評(píng)論 0 0
  • 每一次買(mǎi)烤紅薯下翎,就會(huì)想起來(lái)一個(gè)人。 初中那會(huì)宝当,學(xué)校北門(mén)有一個(gè)滿頭白發(fā)的老太太漏设,時(shí)常瞪著一個(gè)三輪,三輪上邊是笨重的泥...
    黃河灘到拉薩閱讀 332評(píng)論 0 0
  • “你還沒(méi)有和我說(shuō)情話今妄,睡不著” “現(xiàn)在有一份真誠(chéng)的愛(ài)情擺在我的面前,我一定會(huì)好好珍惜鸳碧。如果非要讓我說(shuō)一句話盾鳞,我會(huì)對(duì)...
    尋找大米的蚊子閱讀 258評(píng)論 0 0