溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

二維數(shù)組與二重指針

發(fā)布時(shí)間:2020-06-23 20:06:29 來源:網(wǎng)絡(luò) 閱讀:1656 作者:xun2lei 欄目:編程語言

1.二重指針

1.1應(yīng)用場(chǎng)景
(1)二重指針編程中多數(shù)是和指針數(shù)組結(jié)合起來用

int **p1;
int *p2[5];
p1=p2;

(2)有時(shí)在函數(shù)傳參時(shí)通過函數(shù)內(nèi)部改變外部的一個(gè)指針變量,會(huì)以二重指針的方式把這個(gè)外部指針變量的地址傳進(jìn)去。

void func(int **p)
{
    *p = (int *)0x22222222;
}
int main(void)
{
    int a=10;
    int *p3=&a;
    printf("change before=%p.\n.",p);
    func(&p3);
    printf("change after=%p.\n.",p);
}

2.二維數(shù)組

在內(nèi)存上和一維數(shù)組的存儲(chǔ)方式并無差別,只是管理差異。

//指向二維數(shù)組的數(shù)組名
int a[2][3];                    //下標(biāo)形式二維數(shù)組
int b=0;
int (*p4)[3];              //數(shù)組指針,指針指向一個(gè)數(shù)組,數(shù)組有3個(gè)int類型元素
p4=a;                          //等同于p=&a[0],a對(duì)于第一維相當(dāng)于首元素首地址,第一維的首元素就是第二維的數(shù)組名,所以類型相匹配。
printf("a[0][1]=%d.\n",*(*(p+0)+1));        //指針形式
//指向二維數(shù)組的第一維
int *p5;
p5=a[0];                                     //等同于p5=&a[0][0]; a[0]是第一維的首元素,也是第二維的數(shù)組名。
printf("a[0][1]=%d.\n",*(p5+1));
向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI