在16位編譯系統上,若定義int a10,20,30p當執行p後下列敘述錯誤的是A p向高地址移了

2021-05-21 07:40:53 字數 1989 閱讀 4994

1樓:愛因斯坦波

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

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

2樓:匿名使用者

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

3樓:匿名使用者

這個應該是選a哇

另外inta=,*p=&a;

應該是inta=,*p=a;

c語言,int a[]={10,20,30},*p=&a;當執行p++後,p向高地址移了幾個位元組?為什麼?

4樓:匿名使用者

錯誤,指標型別不符。 p的型別是int *,&a的型別是int (*)[3]。 考慮改為:

int a=,(*p)[3]=&a; 的話,p++後,p向高位移動了sizeof(int)*3個位元組,在16位編譯器裡是6個位元組,32位裡是12個位元組。 或者改為: int a=,*p=&a[0]; 則p++後,p向高位移動了sizeof(int)個位元組,在16位編譯器裡是2個位元組,32位裡是4個位元組。

指標題 誰能解釋下

5樓:匿名使用者

a是錯的,16位的int是兩個位元組, p++相當於p指向a陣列中的20這個位置,

a項說向高地址移一個位元組就是8位,其實應該是16位即2個位元組

6樓:匿名使用者

答案是a, 因為在16位的機器上,一個int型佔2個位元組。a描述了向高地址移動1個位元組(即8位)所以不對。

7樓:匿名使用者

a錯16位的系統是對於int來說2位元組 bcd是一個意思

8樓:趙少楷

a是錯的,在16位系統上,int是2個位元組。當執行*p=&a後,指標p指向a的第一個元素10,也即是a+0,當執行p++時指標指向20,也即是a+1。也可以說p向高地址移動一個儲存單元,而在16位系統上,int是2個位元組,所以說p向高地址移了兩個位元組 。

9樓:詹傑

a錯了,16位編譯器上int型佔2個位元組,b和c的說法等價

若有以下定義:int a[5]={10,20,30,40,50},*p=a;則執行++(*p)後(*

10樓:匿名使用者

我實驗了,你看看結果吧

11樓:轉眼流年的家

如果你題目沒打錯的話是b

在16位c編譯系統上,若定義long a;,則能給a賦40000的正確語句是______。

12樓:匿名使用者

d。長整數常量後面要加l。 沒有加l,則預設為int型別,在16位系統下,int是16位的,佔2個位元組,有效範圍是-32768到+32767,a、b、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的地址

若已定義:int {10,20,30,40,50},*p=a+2;則語句: printf(「%d

15樓:baby學呀

*(++p)表示地址向後移動一個後的數

而((*p)++)表示當前的數自加1

在ubuntu系統中如何用gcc編譯執行c程式

1 確定安裝了gcc編譯器後,接下來用vim編輯一個c檔案。2 下圖是我在c檔案中寫入的內容,就簡單列印一條語句。3 寫好c檔案後,用ls命令檢視該檔案是否存在。4 確定c檔案存在後,使用命令gcc c檔名 o 生成的可執行檔名 例 gcc demo.c o demo 輸入編譯命令後,如果沒顯示什麼...

系統顏色質量16位和32位有什麼區別

顯示器的顏色32位和16位區別如下 1 16位色 俗稱增強色 意思是讓螢幕可顯示2的16次方種顏色 2 32位色 俗稱真彩色 則是2的32次方種顏色。說明 位數越多,對顯示卡中視訊記憶體的要求就越高,顯示效果也會更好 如果電腦執行32位顏色卡,建議改回16位顏色,因為人的肉眼基本上分不出來太大區別的...

sizeofint在16位的機上還是4嗎

一 在16位編譯系統,sizeof int 2。二 sizeof int 表示儲存一個整數所需要的位元組數。因此,sizeof int p要麼等於4 p,要麼等於2 p。例如 在32位編譯系統,sizeof int 4,首先要分清楚什麼是32位機,什麼是64位機.所謂32位機,就是以32位為一個整數...