C語言程式看不懂,求賜教望哪位高手解答下

2021-05-04 18:25:50 字數 854 閱讀 2193

1樓:匿名使用者

你的程式可以執行的。

第一:ptr是一個二維指標。在進行定義之後,即int (*ptr)[2]之後,它是個野指標。而a則是個具有固定地址的靜態二級指標。

a[0][0] a[0][1]

a[1][0] a[1][1]

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

其中,a儲存了a[0][0]的地址,也是a+0的地址,即第一行的地址

ptr = a + i; //表示ptr指向a的第i行。i=0時指向第0行首地址,i=1時指向第1行首地址,以此類推。

ptr++表示將ptr當前的地址加上ptr所代表的基本型別(即int型)的位元組數。

ptr++之後,ptr的值為原值加4

第二:我認為你輸出的時候書寫有誤,真的是用一維陣列輸出嗎?我用a[i][j]輸出,如下:12

1 02 0

0 0其中1和2是分別輸入的兩個數。後三行是輸出a[i][j]。

若輸出一維陣列a[j],實際上是輸出了*(a+j),即第j行的首地址。檢視:12

-1080508564-1080508556

-1080508564-1080508556

-1080508564-1080508556

所以我推斷是你的程式有紕漏,樓主對指標的理解還需要深入一下。

我也學的不大好啦,互相學習下!

2樓:匿名使用者

#include"stdio.h"

你先說下你要幹什麼,這是我幫你糾正的,看看行不void main()

,(*ptr)[2],i,j;

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

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

有個C語言程式看不懂

首先第一個問題 break是跳出while迴圈,也是break以後,其後面的語句不會執行 第二個問題 當輸入的值符合month 1 month 12條件時,就直接break了,不符合這個條件就會顯示error the month you entered is not valid。所以這個題的關鍵就是...

一小段C語言程式看不懂求助

目測程式應該為51微控制器的程式。unsigned char osscankey void unsigned char temp unsigned char i p2 0xff 首先對埠進行寫1操作,這樣把埠置為輸入狀態temp p1 讀另外的一個埠 for i 0 i 8 i if temp 1 ...

新手學習C語言程式看不懂請大家幫忙

程式是從main函式開始執行的,所以你看的時候也可以從main函式開始看,從上到下看.遇到呼叫的子函式再轉到子函式去看,也是從上到下,有問題hi我吧,我白天都在 第一題還想是求素數吧,這是按照素數的定義寫的函式。我把他格式化了一下,應該能看懂了吧。int isprime int a 第二題even ...