31,2,3,4,5,6,7,8,9,10,11,12prt 0後兩句是什麼意思

2021-03-25 23:12:37 字數 2675 閱讀 6579

1樓:匿名使用者

(*prt)[3]=a指的是(*prt)+3的這塊指標指向2維陣列a的首地址,prt應該是個2維指標。

*p=a[0]指的是大小為3的第二維陣列的首地址。

如果不對指標做加法運算的話,不用計較它真正指向幾維陣列,他們指向的都是a、a[0]、a[0][0]的地址。

2樓:匿名使用者

嗯 為陣列下

標是從0開始的,所以不可能出現4 最後是a[3][2]1 2 3

4 5 6

7 8 9

10 11 12

對應的陣列下標:

a[0][0] a[0][1] a[0][2]a[1][0] a[1][1] a[1][2]a[2][0] a[2][1] a[2][2]a[3][0] a[3][1] a[3][2]

3樓:匿名使用者

(*prt)[3]=a,指向陣列a,a[0][0],a[0][1],a[0][2]....,a[3][2],指標確實很麻煩..

*p=a[0] ;p指向a[0][0],a[0][1],a[0][2]

驗證程式如下:

#include

void main()

, (*prt)[3]=a, *p=a[0] ;

int i;

printf("%d\n",*p);

//printf("%d\n",*prt);這樣寫是錯誤的,因為prt是指向一個含3個元素的陣列的

//*prt的值是a[0]陣列的首地址,&a[0][0],才指向a[0][0];

printf("%d\n",**prt);

for (i=0;i<3;i++)

printf("%d ",*(*prt+i));

printf("%d\n",**(prt+3));}

4樓:匿名使用者

a[0][0], a[0][1], a[0][2], a[0][3]

5樓:匿名使用者

a[0]指的是a[0][0]也就是1

已知:int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12},c語言問題

6樓:匿名使用者

int (*ptr)[3]=a這句,

bai將a的首地du址賦值給了ptr,ptr表示的是zhi指向一個含有三個int的數dao組的指標,*((ptr+1)[2])等價於*((ptr+1)+2),等回價於*(ptr+3),這表示從答

陣列a的首地址向後移動3個單位,每個單位為一個含有3個int的陣列,所以一共向後移動了9個單位,即得出執行結果10!

要想正確表達a[1][2],應該是(*(ptr+1))[2],陣列的運算子[ ]比間值運算子*的優先順序高,(*(ptr+1))[2]表示a向後移動一個單位即三個int,此時ptr指向4,再往後移動2個int指向6。

其實遇到這類問題畫記憶體結構圖比較容易理解了

7樓:匿名使用者

(*ptr)[3]=a,陣列

指標只有3行,陣列a有四行,所以(*ptr)[0]=,(*ptr)[1]=,(*ptr)[2]=,所以*((ptr+1)[2])表示的是(*ptr)[2]裡面的回

第二個元素就是答10

8樓:匿名使用者

*((ptr+1)[2])這種用法是不對的,陣列的下標相當與解引用,比如a[2]=*(a+2)

因此,上面的替換做法是(*(ptr+1))[2].

9樓:巫馬尓絲

*((ptr+1)[2])和copy*(*((ptr+1)+2))是等價的,而第二個算式可以演化成*(*(ptr+1+2)),也就是*(*(ptr+3))。

你既然會用指標表示陣列,那麼我用一維陣列給你舉個例子:

int arr[3];

這裡如果要表示陣列的第二個元素,有2種方式 arr[1], *(arr+1),

就是說arr[1] == *(arr+1)

那麼你*((ptr+1)[2])我們只看括號內的內容(ptr+1)[2] ,它按照上邊的等式轉化一下就是*((ptr+1)+2),去掉裡面的括號*(ptr+1+2),也就是*(ptr+3);

*((ptr+1)[2]) == *(*(ptr+3)) == a[3][0]

很好的解釋了為什麼你寫的第一個表示式是10了,

你如果要用ptr表示a[1][2]就應該是*(*(ptr+1)+2)或者*(ptr+1)[2]這樣寫才對。

c語言的問題 int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12}; int (*p)[4]; p = a;

10樓:匿名使用者

因為p[0]和p[1]分別指向4個整數

如果你是需要將p[1]指向的4個整型資料一次性賦值給p[0]指向的4個單元,那麼c語言沒有這麼簡單的賦值,只好編個程式一個一個地賦值;

如果你是需要把p[0]指向p[1],那麼你可以寫:p[0]=&p[1];

11樓:

我試了,p[0]為不可修改的左值。

只知道這個語句本身是有問題的,p[1]是依賴p[0]的。p[0]怎麼可能由p[1]賦值呢?

或許彙編的角度更有說服力。期待正解!

池上後兩句的詩意是什麼寫出池上後兩句詩意

池上後兩句的詩意是 他不知道怎麼掩藏蹤跡,水面的浮萍上留下了一條船兒劃過的痕跡。原文 池上 唐 白居易 小娃撐小艇,偷採白蓮回。不解藏蹤跡,浮萍一道開。註釋1.小娃 男孩兒或女孩兒。艇 船。2.白蓮 白色的蓮花。3.蹤跡 指被小艇劃開的浮萍。4.浮萍 水生植物,橢圓形葉子浮在水面,葉下面有鬚根,夏季...

觀書有感後兩句是什麼意思,《觀書有感》後兩句什麼意思?

註釋 這首詩富於啟發而有歷久常新。半畝大的池塘像明鏡一樣,映照著來回閃動的天光雲影。要問這池塘怎麼這樣清澈?原來有活水不斷從源頭流來啊!詩的寓意很深,以源頭活水比喻學習,要不斷吸取新知識,才能有日新月異的進步。原詩四句 半畝方塘一鑑開,天光雲影共徘徊 問渠哪得清如許?為有源頭活水來。它實寫的是明麗清...

山行最後兩句是什麼意思,山行這首詩後兩句是什麼意思

停下車來,是因為喜愛這深秋的楓林晚景。楓葉秋霜染過,豔比二月春花。全文意思 沿著彎彎曲曲的小路上山,在那白雲深處,居然還有人家。停下車來,是因為喜愛這深秋的楓林晚景。楓葉秋霜染過,豔比二月春花。全詩通過楓葉,寫出了晚秋的熱烈氣氛。山行 最後兩句是什麼意思?山行這首詩後兩句是什麼意思?山行 的後兩句詩...