在16位編譯系統上,右有定義int a10,20,30p,當執

2021-03-23 05:20:59 字數 2683 閱讀 3101

1樓:匿名使用者

tc2.0就是16位編譯系統,就是int是16位.而我們現在用的vc什麼的,int是32位.

指標的加減操作,都隱含地乘上了資料型別的大小,所以p++實際上是移動乙個int的大小,即2位元組.所以a錯

2.因為是16位系統,所以int d是16位,char ch[2]也是16位,這個聯合體的大小就是16位,2位元組.且ch[0],ch[1]分別對應d的低位元組和高位元組.

2樓:千里疾風

16位編譯系統是指int型別佔16個位的系統,也就是說1個int變數時2個位元組,因此第一題的答案應該是a錯,如果是32位的系統,short int相當於16位系統的int

char型別的東西不管在什麼樣的系統上都是8位1位元組的,所以1個union需要4個位元組

在16位編譯系統上,若定義int a[]={10,20,30},*p=&a;當執行p++;後下列敘述錯誤的是() a. p向高位址移了

3樓:愛因斯坦波

嗯,你的想法是正確的,應該是int *p=a;或者int *p=&a[0];

在16位編譯系統上,若有定義inta[]={10,20,30},*p=&a;當執行p++後,下列錯誤的是()

4樓:匿名使用者

a錯, p與a+1等價p向高位址移動乙個int型別位元組數

5樓:匿名使用者

這個應該是選a哇

另外inta=,*p=&a;

應該是inta=,*p=a;

134. 在16位編譯系統上,若有定義int a[]={10,20,30},*p=&a;當執行p++;後下列敘述錯誤的是( )。

6樓:匿名使用者

選擇ap++後p指標指向a[1]的首位址

c語言若有下列說明和語句:int a[4][5], (*p)[5]; p = a; 則對a陣列元素

7樓:匿名使用者

如果定義int (*p)[n];p1=a;p1++後,p指向a[1][0];

則p+j將指向a[0]陣列中的元素a[0][j]。

由於a[0]、a[1]┅a[m-1]等各個行陣列依次連續儲存,則對於a陣列中的任一元素a[i][j],指標的一般形式如下:

p+i*n+j,相應的如果用p來表示,則為*(p+i)+j;

元素a[i][j]相應的指標表示為:

*( p+i*n+j) ,相應的如果用p1來表示,則為*(*(p+i)+j)。

推出以下的等價關係:

a+i == p+i;

a[i] == p[i] == *(a+i) == *(p+i);

a[i][j] == p[i][j] == *(a[i]+j) == *(p[i]+j) == *(*(a+i)+j) == *(*(p+i)+j)。

8樓:鍵盤未找到

a.表示&a[1].

b.a[3]

c.&a[1][3]

d.a[0][2]

9樓:匿名使用者

首先呢,a是二維陣列,不解釋。

然後呢,p是乙個指標,什麼樣的指標呢,就是指向一維陣列的指標,而且這個一維陣列的元素個數呢是5.

然後呢,p=a;就是把p指向a陣列。

分析選項:

a p+1 .因為p是一維陣列指標,所以p每+1就是+1行。錯誤。

b *(p+3)是指第4行的首位址,訪問不到元素。需要再*c *(p+1) + 3 對位址+3 沒啦意義d *(*p+2) *p是第0行首位址 +2 呢就是第二個元素的位址,*取資料咯。

10樓:一方通通

本題中定義了乙個二維陣列c和乙個陣列指標p並初始化讓它指向c,顯然此時p中的各元素為位址,

a中p+1,此時的1代表的長度是整個二維陣列c的長度,p+1將讓p指向c陣列後面的元素,故不能引用c陣列中的成員,故選項a錯誤;同理,選項b和選項c都不正確,

d中p[0]+2代表的是第一行第三個元素的位址,而*(p[0]+2)將代表第一行第三個元素的值。

一道c語言題,請大家幫幫忙,謝謝,求詳解

11樓:匿名使用者

a錯誤,p++即p=p+1;向後移動乙個儲存單元,因為16位編譯系統上,int佔兩個位元組

12樓:二麻子

選a,當指標++是都是移動乙個儲存單元.....16位作業系統,這裡也就是加了乙個int 2個位元組...然後p就指到a[1]了...

計算機二級考試題

電氣三班c語言選擇題

若有如下定義語句

13樓:物理公司的

p指向a[2]就是30,*p--如果是直接輸出的話

printf(*p--)//就是輸出30

先p--在printf(p)的話就是20,和後置的--一樣

14樓:匿名使用者

是30第一步*p列印當前所指向的內容即*(a+2)指向的是a陣列的第三個元素,所以先輸出30然後p--p指標減1指向20的位址

「16位ms dos子系統」遇到無效指令,怎麼辦

如果電腦出現了16位子系統遇到無效指令,可能是硬碟出了問題,需要換塊硬碟解決問題。硬碟的磁性圓盤由硬質材料製成,有很高的精密度。硬碟連同驅動器一起封閉在殼體內,在它的容量比優盤和光碟大得多,讀寫速度比優盤和光碟快得多。也有可能是系統設定的問題,解決方法是 1 開始 執行 在開啟對話方塊中輸入 gpe...

為什麼在c 上寫好且執行的程式在ACM編譯器上卻編譯錯誤

如果真想做acm,就不要用vc6.0,vc對標準c 支援很差。用dev c 正賽windows系統都沒有,要學會用emacs netbeans eclipse 若出現編譯錯誤,各oj上都會有提示,告訴你哪行錯了。常見vc正確,但標準c 錯誤的 1.void main 純粹m yy gcc和iso c...

win7旗艦64位系統,為什麼16G記憶體只顯示8G

方法如下 bai 1.開啟 執行du 對話方塊,輸入msconfig,進zhi入設定 2.選擇 啟動 daoboot 標籤專,選擇 高階選屬項 進入啟動高階選項中 3.勾選 最大記憶體 儲存重啟就好 4.如果還不行,就再次進入 系統設定 去除 最大記憶體 和 處理器數 兩個選項,再次重啟就好。5.此...