1樓:沙曉曼冼荏
這道題來考點是運算
符自優先順序,-負號
++的運算子優先順序相等
表示式 x=-m++;先試圖將m付給x
然後加1,但是前有有個負號
所以當負號和n進行運算的時候,x已經變成4了,所以x=-4
表示式 x=x+8/++n;其中n先加1等於4然後去除8 等於2
所以-4+2等於-2
c語言問題,請高手幫忙解釋一下這個程式,謝謝了 10
2樓:匿名使用者
a定義了一個陣列
,並把a的地址賦給指標p;
clrscr()是清屏函式
for(i=0;i<4;i++)
a[i]=*p++;
在迴圈裡,*p++很有專迷惑性,考察*和++兩個操屬作符號的優先順序,*的優先順序更高些。
所以a[i]=*p++; 表示先把*p指向的數值賦給a[i],然後p++,就是指向下一個地址。
整個迴圈,沒有改變a[i]的數值。
printf("%d\n",a[2]);輸出a[2]的數值,為6.
希望對你有所幫助
3樓:匿名使用者
main()
,int*p=a; //指標p指向陣列baiaint i;
clrscr(); //應該是dusystem("cls");才對吧,作用是清屏
for(i=0;i<4;i++)
a[i]=*p++; /*依次zhi把p指向的元素賦給數dao組a中的元素,但在這是多餘內
了,因為p本身就是指向陣列a的,相當於把自己賦給自己了。*/printf("%d\n",a[2]); //輸出陣列中容第3個元素,}
4樓:匿名使用者
這個 ,最終結果就是列印一個6吧···
請給我詳細解釋一下這段程式 謝謝了!!!c語言的!
5樓:匿名使用者
首先看到樓主這個程式的話,就明顯的是冒泡法來排序陣列。
但你的程式中有幾個錯誤。這裡我也不知道是你的錯誤還是我的錯誤,但可以肯定的是,如果你是用冒泡法來實現排序陣列,那麼你的程式定然存在錯誤。
首先你的int n,是陣列的元素個數,還是bb[n]裡面的那個n,一般這樣的話n都必須是陣列元素的個數,既如果是陣列b[10],那麼n必須取9。
而且你的第二個迴圈中的判斷條件必須是j<9-i;這才是冒泡法的原理正確的寫法應該是
void fun(int bb, int n)如果樓主真的是用冒泡法,而自己又不理解冒泡法,那麼在這上面的解釋估計你也懂不了。所以建議樓主去看譚浩強「c語言程式設計」第六章的「陣列」會有詳細的講解冒泡法,比起我們在這裡講解要好的多。
祝你好運
6樓:匿名使用者
看起來,這個是一段氣泡排序的程式,按照從大到小的順序排列
c語言問題,請高手幫忙解釋一下這個程式,謝謝了
a定義了一個陣列 並把a的地址賦給指標p clrscr 是清屏函式 for i 0 i 4 i a i p 在迴圈裡,p 很有專迷惑性,考察 和 兩個操屬作符號的優先順序,的優先順序更高些。所以a i p 表示先把 p指向的數值賦給a i 然後p 就是指向下一個地址。整個迴圈,沒有改變a i 的數值...
哪個大神能給我解釋一下這個c語言程式怎麼翻譯
程式的功能是輸出從100 200之間 不包括100和200 的所有素數,10個一行。include 載入標頭檔案stdio.h include 載入數學庫標頭檔案math.hmain 定義主函式if n 10 0 如果n能被10整除printf n 換行 printf n 換行getch 程式執行後...
c語言求幫忙解釋一下下面這個程式片段
int b 2 int x,y x a y b x x 1 x y x x 1 printf d,d a,b x是指bai向a的指標du,y是指向b的指標,則 x x 1 相當於 zhidaoa a 1 x y 更改內x為指向b的指標 x x 1 相當於b b 1 那麼結果呼之 容欲出2 3 就你的...