請幫我解釋一下這個c語言程式問題,謝謝

2021-04-20 03:03:41 字數 1458 閱讀 4129

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 就你的...