C語言二級問題

2023-02-13 10:50:36 字數 547 閱讀 6686

1樓:匿名使用者

致命錯誤!概念混了你。首先p是指標!他自己不是被運算的他是指向別人的。

*(p+3)是p[3], 也就是a[3](因為前面p=a了),然後是a[3]+2=6,記得我前面跟你說的麼 ?預設從0開始算!

因為你的*p是一個指標。預設指向a,所以當你輸出*p的時候是a[0]的值,就是1。而後面*(p+3)是a[3]而它剛才被你加了2.就是6了.

2樓:匿名使用者

你的指標變數運用很巧妙、熟練,但你犯了一些概念性錯誤。

首先,*(p+3)並沒有改變p的值,只是一個表示式,代表a[3]的值,當然,這個操作等價於a[3]+=2;所以,程式按照你的指令執行後,列印的是a[0]和a[3]的值,當然是1和6了。

有什麼問題再找我聯絡好了。

3樓:

p的值並沒有變! 是你自己想得太複雜了``因此p對應的是陣列首地址,也就是1所在地址"*(p+3)+=2;中的p移3位,就是4了吧。 *p+=2 等於6吧 n1=6"

套用你的話,只是它對應的是n2!!!

C語言二級問題

答案是3 第一個if,括號內是非a,因為a 0,所以不執行if語句,執行else if,else if成立,但是後面是 沒有語句塊,所以繼續執行後面if語句,c 0成立,所以x 3 如果中間沒有大括號,那麼結果是4,因為過程是 if a x 0滿足 x 34,接下來的else if b if c x...

二級c語言題,急求解,二級C語言題,急求解

選d 比較淺顯的來說,左移n位就是乘以2的n次方,右移n位就是除以2的n次方。具體細節如下 c語言裡的左移和右移運算 先說左移,左移就是把一個數的所有位都向左移動若干位,在c中用 運算子.例如 int i 1 i i 2 把i裡的值左移2位 也就是說,1的2進位制是000.0001 這裡1前面0的個...

二級C語言,下列程式的輸出結果,二級c語言題目 以下程式執行後的輸出結果是 main() int x 0210 printf X n ,x

main 語句2將 b和a分別傳給fun的兩個形參,b的地址傳遞給形參c,即c指向變數b,c c 1 即 c f 1,ascii碼值為g,故 c的值為g,注意,因為c變數的值是b的地址,c是對c的解引用,代表了b地址的內容,也即b變數的值,故b變數的值改變為g。fun函式第2句d 1即d d 1 語...