1樓:
a啊!這位出題先生太忽悠人了,你沒有發現表示式中的a是大寫的嗎?沒定義啊……哈哈……
int a[2][3];int * p=a與int a[2][3]; int (*p)[3]=a;的區別
2樓:匿名使用者
int (*p)[3]是陣列指標,指向有三個元素的陣列 p => a[0]位址 p++ => a[1]位址
int *p是整形指標 p => a[0][0]位址 p++ => a[0][1]位址
所以,p每次移動的位址大小是不同的
int a[2][3],*p;p=a;則對w陣列元素非法引用的是().a) *(p+2)
3樓:聽不清啊
int a[2][3],*p;
p=a; ------- 這個語句才是非法引用。皮之不存,毛將焉附?下面的問題就沒法回答了。
4樓:匿名使用者
p是陣列a的首位址,指向a[0][0],p+2只是移動到了2*sizeof(int)的位置。也就是a[0][2]
int a[2][3] int (*p)[3] = a;
5樓:匿名使用者
p表示首位址,二維陣列實際是一維連續放置,比如也為19*19圍棋棋盤第ij個元素轉為連續放置為19*i+j
6樓:匿名使用者
a[3][2]=,,};
int (*p)[3] = a;(*p)代表的是行bai;則p指標du指向的是函式3個元
zhi素dao(每個元素兩個值)的陣列;專*(p+1)為這個陣列第二屬個元素()的首位址,(*(p+1)+1)為裡的第二個元素,為4。
若有定義int a[2][3],則合法引用陣列元素 a.a[0][1/2]
7樓:小螞蟻
應該選擇a,陣列下標可以是整型常量或整型表示式。1/2是整形常亮表示式,其餘的選項都越界
若有定義int a[3][4];下列敘述中不能表示陣列元素a[1][1]的是 5
8樓:匿名使用者
只有d不能表示陣列元素a[1][1],表示的是a[1][1]的位址,而不是陣列元素a[1][1]。
a、b、c都能表示陣列元素a[1][1]選d
9樓:
d*(a+5)指a[1][0]
若有說明 int a[3][4],則對 a 陣列元素的正確引用是
10樓:匿名使用者
a[2][4]越界了
最後乙個元素a[2][3]
引用時下標從0開始
第一行a[0][0] a[0][1]...
第三行a[2][0] a[2][1]...
為何i的結果為1而不是8,c語言的規定?
11樓:疏金生禮鸞
p,q為兩個指標,開始是分別指向a,b陣列的首位址。
重點看if那句,意思是當(p+i)位址的值和(q+i)的值相等時,x=這個值*2
什麼時候相等呢,3的時候
因此x應該等於6選d
12樓:樂於分享
不是c語言規定的,定義指標p,q,通過p=a,將陣列的首位址賦給了p指向陣列第乙個數1,q=2,定義i為整數,即i=2-1=1
13樓:恆者致遠
陣列指標的加減法是以陣列存放的資料的型別為準的,如果a+1指向的記憶體空間是什麼 ,你就明白為什麼不是8了
14樓:
指標的移動是以這個指標指向的變數型別的長度sizeof(type)為單位的,如果這個型別長度為4,那麼指標增加1,就是向後移動4個位元組。
反過來計算兩個指標之間距離的時候,也是以sizeof(type)為單位的。
另外,你這個**的結果,q-p應該是2,而不是1
15樓:葉子一哥
兩個指標不能進行加法運算,這是非法操作,因為進行加法後,得到的
結果指向乙個不知所向的地方,而且毫無意義。兩個指標可以進行減法
操作,但必須型別相同,一般用在陣列方面,不多說了。
16樓:雪狼
你這個陣列定義的是想3個數1,2,3還是4個數1,2,3,0?
設有定義語句int c[4][3];,則以下對陣列元素的引用形式中正確的是( a)。 a) c[
17樓:酷哥
二維陣列的引用方式必須為c,則可排除bd,陣列下標都是從0開始的,所以c超出範圍,因此選a
18樓:聽不清啊
引用形式中正確的是( a)。
c[3][0]是陣列中的乙個成員。
19樓:匿名使用者
選a,b和d明顯非法。。。c超過了範圍哦。。a就是c[3][0]
設有如下定義 intptr則以下敘述中正確的是
墨汁諾 c。ptr函式返回一個int 型資料 這個才是正確的,理由是int fun 顯然是一個函式說明,fun換為 ptr 則ptr就是指向函式的指標了。int ptr m ptr是一個指向m長度的線性記憶體空間,即m大小的一維陣列 int ptr ptr是一個返回值為int 引數列表為空的函式指標...
設有如下定義 int pp 100則printfd ,p的輸出結果是100,對麼?為什麼
隔壁小鍋 int p p 100 則 printf d p 的輸出結果是100是不對的,p宣告為一個int型指標,但是沒有指向具體的記憶體空間。int型別在記憶體中佔用了4個位元組,也就是32位。int型別是有符號的,因此,32位並不會全部用來儲存資料,使用最高位來儲存符號,最高位是0,提示資料是正...
若有以下定義,則計算表示式y y m y後的y值
從左往右分解,y y m y 就是 y y y m y y m y 就是 y y m y m y 就是 m m y 那麼就等於 m m y m 10,y 2 y y m m 10,y 8 y y y m 10,y 16 y為 16 表示式從右向左計算也就是程式中的y y m y 相當於 m m y ...