1樓:匿名使用者
我倒,你這個是選擇題,對吧!看了三遍才看懂題意.
解:int a[3][4]; 定意一個二維陣列(*p)[4]=a;這裡就是定義p為指向包含4個元素的一維陣列的指標變數,那麼,你試想一下,二維陣列在記憶體中存放的形式是怎麼樣的? a賦給(*p)[4], a就是a[0][0]的地址, a就是指向零行首列地址的,它的趨勢是指向行的,a+1就是指向一行首列的地址,a+2就是指向2行首列的地址,那麼*(a+2)它也是指向2行零列的地址, 它的趨勢是指向列的,那麼*(a+2)+0與*(a+2)是指向同一個地址,*(a+2)+1就是指向2行1列的地址,*(a+2)+3就是指向2行3列的地址,*(*(a+2)+3)就是a[2][3]
*(p+2)是不是指向二行首行的地址呢? *(p+2)+3是不是指向二行三列的地址呢? 那麼*(*(p+2)+3)就是a[2][3]
2樓:
p是一個指標陣列, 開始時,p指向a[2][4]的首地址(或者a[0][4]的地址),p+1時,指標前移一個單位(即前移一個a[4]大小的位元組),也就是移到a[1][4]的首地址,同理,p+2時,它移到a[2][4]的首址,因為要引用a[2][3]的值,所以取指標值*(p+2),此時*(p+2)是一個一維陣列,即是a[2][0]行標的那行(把二維陣列看成是個矩陳吧,所以是取a[2]這行),
所以直接(*(p+2))[3]就是a[2][3]的值了,換成指標模式就是*(*(p+2)+3)
不知樓主可看得明白,發覺這個問題文字表達自己表達不出自己想說的!
c語言若已定義"int a[3][4],(*p)[4];"下列賦值表示式中正確的是 a. p=*a 50
3樓:匿名使用者
a和c為int*型別
b範圍不在陣列裡選d
若有定義:int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12},(*p)[4];p=a; ,( )對陣列a元素的引用是正確的。
4樓:處搖胼手胝足
a。a陣列的長度是3,*(p[4])和**(p+4)都會造成超出地址範圍
(**p)[2]表達不正確
*(p[2]+3) 是a[2][3];
5樓:匿名使用者
int (*p)[4];表明p是行指bai針,即p指向二維陣列中的一du行。zhi
p=a;這一句表示
daop指向a[0],也就是
版指向a陣列第0行的第0個元素權
(a[0][0])的地址。
p[2]表示p指向a陣列的第二行,即指向a[2]行,也就指向a[2][0]的地址。
p[2]+3表示行指標指向a陣列的第二行(從第0行開始),(從0開始)第3個元素,也就是a[2][3],*(p[2]+3)表示第2行,第3個元素的值。
p+4表示第四行(從0行開始),因為a陣列沒有第四行,所以是錯的。
p[4]表示第四行(從0行開始),原因同上。
*p表示a陣列第0行,第0列地址,**p表示a[0][0]的值,值不會再包含元素,所以(**p)[2]是錯的。
若有定義 int a[3][4],b[4][3],(*p)[4]; 下列賦值等式正確的是 答案是 p=&a[1] p=b為什麼錯
6樓:匿名使用者
(*p)[4]的意思是:p是一個指向具有4個int型別元素陣列的指標。
a[3][4]有3行,每行的元素有4個
b[4][3]有4行,每行的元素有3個
所以 p=&a[1]是對的,讓p指向a的第二行的四個元素,因為a的每行有四個元素,這與p的定義恰恰是匹配的。
若有以下定義和語句,則對a陣列元素的正確引用為( )。 int a[2][3],(*p)[3];p=a;
7樓:匿名使用者
選 c。
p 的型別是int (*)[3],是指標的指標。
c選項相當於 p[1][1]。
b選項錯,它相當於 p[2][1],陣列的第一個座標越界了。
若有定義inta41,2,3請問a
首先,由初始化可知 a 0 1,a 1 2,a 2 3,a 3 0 由於a 0 1,所以a a 0 a 1 2a a a 0 a 2 3 因此,結果為3 若有以下定義和語句則 p 的值是 3 這個答案為什麼不是2 p a 2 p指向了a的下標為2的元素,c語言的陣列下標是從0開始的,下標為2指的是第...
若有定義 int k 1,a 1010,20,
b.p2 k k是整型資料變數,p2是int 型別變數,編譯器會報錯說無法將整型資料變換成int 型別進行賦值。其他選項賦值號兩邊型別相同。若有以下定義 int a 5 10,20,30,40,50 p a 則執行 p 後 我實驗了,你看看結果吧 如果你題目沒打錯的話是b 設有以下定義的語句 int...
若有定義inta7floatx25,y
x a 3 int x y 2 4 2.5 7 3 int 2.5 4.7 2 4 2.5 1 7 2 4 2.5 7 2 4 2.5 1 4 2.5 若有定義 int a 7 float x 2.5,y 4.7 則表示式x a 3 int x y 2 4的值是 public class t0609...