1樓:疏金生禮鸞
p,q為兩個指標,開始是分別指向a,b陣列的首地址。
重點看if那句,意思是當(p+i)地址的值和(q+i)的值相等時,x=這個值*2
什麼時候相等呢,3的時候
因此x應該等於6選d
2樓:樂於分享
不是c語言規定的,定義指標p,q,通過p=a,將陣列的首地址賦給了p指向陣列第一個數1,q=2,定義i為整數,即i=2-1=1
3樓:恆者致遠
陣列指標的加減法是以陣列存放的資料的型別為準的,如果a+1指向的記憶體空間是什麼 ,你就明白為什麼不是8了
4樓:
指標的移動是以這個指標指向的變數型別的長度sizeof(type)為單位的,如果這個型別長度為4,那麼指標增加1,就是向後移動4個位元組。
反過來計算兩個指標之間距離的時候,也是以sizeof(type)為單位的。
另外,你這個**的結果,q-p應該是2,而不是1
5樓:葉子一哥
兩個指標不能進行加法運算,這是非法操作,因為進行加法後,得到的
結果指向一個不知所向的地方,而且毫無意義。兩個指標可以進行減法
操作,但必須型別相同,一般用在陣列方面,不多說了。
6樓:雪狼
你這個陣列定義的是想3個數1,2,3還是4個數1,2,3,0?