c語(yǔ)言中數(shù)組指針的使用方法-創(chuàng)新互聯(lián)

c語(yǔ)言中數(shù)組指針的使用方法

創(chuàng)新互聯(lián)建站堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿(mǎn)足客戶(hù)于互聯(lián)網(wǎng)時(shí)代的河?xùn)|網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
int *a[4]; //指針數(shù)組

指針數(shù)組就相當(dāng)于一次聲明了多個(gè)指針。數(shù)組的每一個(gè)元素都是一個(gè)指針。很好理解,下面主要看數(shù)組指針

int (*p)[4]; //數(shù)組指針

數(shù)組指針就相當(dāng)于一次聲明了一個(gè)指針。只不過(guò)這個(gè)指針指向很特別,是一個(gè)數(shù)組。

[]優(yōu)先級(jí)大于*,故數(shù)組指針聲明時(shí)要加()。

例1:

#include<stdio.h>#include<stdlib.h>void main()
{    //數(shù)組指針的用法,用處。
    int b[16]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};    int (*p)[4]; //該語(yǔ)句是定義一個(gè)數(shù)組指針,指針步長(zhǎng)為4個(gè)int即16位。    //int *p2=&b;
    p=&b;    int i=0;    while(i<16)
    {
          printf("%d\t",(*p)[i]);          //printf("%d\t",*p2++);
          i++;
    }
}

printf("%d\t",(*p)[i]);遍歷輸出數(shù)組b;
數(shù)組指針就相當(dāng)于舞王僵尸一樣,帶了小弟,n就是小弟的個(gè)數(shù),通過(guò)下標(biāo)值能直接訪(fǎng)問(wèn)到具體哪一個(gè)小弟,即數(shù)組里哪一個(gè)數(shù)

數(shù)組指針下標(biāo)自增(i++)的時(shí)候,指針指向不變。

這里直接用整形指針就可實(shí)現(xiàn),而且更方便簡(jiǎn)潔。見(jiàn)上面被注釋部分。

例2:把例1的while()語(yǔ)句替換。

  while(i<4)
    {
          printf("%d\t",(*p++)[0]);
          i++;
    }

例2輸出1 5 9 13,相當(dāng)于指針一次移動(dòng)了4個(gè)int.16個(gè)字節(jié)。

數(shù)組指針自增(*p++)時(shí),指針指向移動(dòng)sizeof(類(lèi)型)。

其實(shí)上句在其他類(lèi)型指針也適用。

如int *p;

//指針指向了int,就是整型指針,整型指針有啥特點(diǎn)?就是能保存整形變量的地址。有啥用途?就是p++的時(shí)候能指向下一個(gè)int型數(shù)。所以了?經(jīng)常用指針指向一個(gè)數(shù)組。因?yàn)樗麄兌际莍nt型的,所以推導(dǎo)出步長(zhǎng)了?整型指針的步長(zhǎng)為sizeof(int),即4字節(jié)

//同理可以得出什么float型指針,char型指針什么的。。。

同理就得出了數(shù)組指針,特點(diǎn)?保存數(shù)組首地址。用途?p++的時(shí)候能指向下一個(gè)數(shù)組。所以了?要用它來(lái)指向一個(gè)二維數(shù)組。因?yàn)槎S數(shù)組里的每一個(gè)元素都是相同類(lèi)型的(都是一個(gè)int型數(shù)組),所以推導(dǎo)出步長(zhǎng)了?sizeof(int[4]),即16

//說(shuō)白了就一指針,指向了數(shù)組類(lèi)型

例3:數(shù)組指針指向二維數(shù)組。

#include<stdio.h>#include<stdlib.h>void main()
{    int a[3][4]={{1,2,3,4},{11,12,13,14},{21,22,23,24}};    int (*p)[4]; //該語(yǔ)句是定義一個(gè)數(shù)組指針,指針步長(zhǎng)為4個(gè)int即16位。
    p=&a;    int i=0;    while(i<3)
    {        //printf("%d\t",(*p)[i]);        //數(shù)組指針,指向的是一個(gè)數(shù)組整體,相當(dāng)于指針也帶了下標(biāo),當(dāng)執(zhí)行i++操作時(shí),下標(biāo)+1,得到該數(shù)組的下一個(gè)元素,        //在該例中,指針沒(méi)有位移,所以依次輸出為1 2 3
        printf("%d\t",(*p++)[0]);        //整型數(shù)組類(lèi)型的指針,指向的是一個(gè)數(shù)組整體,當(dāng)執(zhí)行*p++操作時(shí),指針位移該數(shù)組長(zhǎng)度的位數(shù)        //在該例中,即指針位移4個(gè)int的長(zhǎng)度,所以輸出是1 11 21
        i++;
    }
}

以上就是數(shù)組指針的用法有哪些?的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司其它相關(guān)文章!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。

標(biāo)題名稱(chēng):c語(yǔ)言中數(shù)組指針的使用方法-創(chuàng)新互聯(lián)
文章位置:http://muchs.cn/article26/cspgcg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶(hù)體驗(yàn)、ChatGPT標(biāo)簽優(yōu)化網(wǎng)頁(yè)設(shè)計(jì)公司、動(dòng)態(tài)網(wǎng)站、微信公眾號(hào)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司