1樓:匿名使用者
int a=2,b=1,*p=&a;
*p=3;//因為指標指向a,所以此時相當於a=3a=a+b;//a=3+1
所以a=4
2樓:
4。最後a的值是4。
已知:int a[]={1,2,3,4}, y, *p=a;則執行語句y = (*++p)--;之後, 陣列a各元素的值變為?
3樓:匿名使用者
已知int a=, y, *p=a;則執行來語句y = (*++p)--;之後自, 陣列a各元素的值變為1,1,3,4 。
標準函式int(x)其基本功能是得到一個不大於x的最大整數,如int(3.59)=3,int(-2.01)=-3。
int函式是一個用途很廣的函式,在教學中能有目的的分列其使用技巧。
c語言沒有規定各種整數型別的表示範圍,也就是說,沒有規定各種整數的二進位制編碼長度,對於int和long。
4樓:
b正確,選b。++p使p指向了2,*++p就是a[1],(*++p)--就是a[1]--。變數y的值是2,y=a[1]--;是把a[1]的值賦給y後才對a[1]作減一運算。
5樓:匿名使用者
執行過程是p++,然後y=*p;然後(*p)--。
即p的指標位增加一,然後賦值,最後指標對應值減一,即y=a[1],然後a[1]=a[1]-1;
綜上答案是b、b
6樓:匿名使用者
先++p,p指向a[1],
再*p,=2;
賦給y,y=2;
最後*p=2,--後,*p=1
所以是b b
設有定義int a=3,b,*p=&a;執行p=a後b裡的值為3,為什麼?p不是指標變數嗎執行p=a後裝的不是a裡的值嗎?
c語言 定義則執行y=(*--p)++後,y的值是
7樓:
這好解釋啊,因為++是後++,要等到把(*--p)的值賦給y後(*--p)的值才會增1。所以結果是y=1,a[0]=2。你可以用下面的**驗證:
int main(void),y,*p=&a[1];
y=(*--p)++;
printf("%d %d\n",y,a[0]);
return 0;}
若有定義語句:int a[2][3],*p[3]; ,則以下語句中正確的是
8樓:匿名使用者
應該選c。
p是一個指標數
組,它有四個元素,每個都是一個指向int型的指標。
a是一個二維陣列,它的每個元素都是int型的。
a的錯誤是因為p是常量(陣列名都是指標常量),不可以被賦值。而且p和a的型別也不一致。
bcd都是對p的元素賦值,這是可以的,等號右邊應當是一個int型資料的指標(即地址)。c選項中a[1][2]是a的一個元素,是一個int型值,&取了它的地址,所以是正確的。
9樓:匿名使用者
int* p[3]是定義了一個大小為3的陣列指標,也就是定義了三個int型的指標。
p代表指標陣列的首地址,相當一個二維指標。
p[0],p[1],p[2]代表一個int型指標c是對的
設有inta1b2c3d4m2n2執行
這是邏輯運算,n的值為2 m a b 是賦值表示式,若a大於b則m得真,否則m得假回。答 a 1,b 2,a b 為假,故 m 假。賦值表示式 m a b 為假。m 0。在邏輯與 運算中,如果第一個運算元為假,則結果是假,後面的運算元不參與運算,本題中因為第一個運算元 m a b 為假,所以第二個運...
71設有定義inta2,b3,c4則以下選項中
嗯,對於這種問題可以用真假來判斷,當數值不為0時都一律為真,只有是內0才是假 a a容c為假,所以 真 假 為假,後來 假 真 為真,不是0b 真 假 為假,是0 c 真 真 為真,不是0 d 真 真 為真,c a為真,真 真 為真,不是0 選擇b 貌似都不為0 哦,你確定題目沒寫錯嗎 設有定義 i...
若已定義inta3,b2,c1則語句a
答案bai d在表示式中,運算步驟為 du如果你zhi不清楚,請看看運dao算符的優先順序 專1.a 則a 4 2.b 則b 3 3.c 則c 2 4.則為真 5.屬 則為直 表示式最後為真。在運算中,b只遞增了一次,所以執行後b的值為3,選d b邏輯運算又別稱 短路運算 對於p1 p2 如果表示式...