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位為一個整數...