c語言問題,請高手幫忙解釋一下這個程式,謝謝了

2021-03-10 16:43:17 字數 1112 閱讀 9652

1樓:匿名使用者

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.

希望對你有所幫助

2樓:匿名使用者

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個元素,}

3樓:匿名使用者

這個 ,最終結果就是列印一個6吧···

請高手幫忙詳細解釋一下下面的一個c語言程式!謝謝。要詳細。

4樓:淡魚鹹魚

//該程式的測試必須輸入5位數,否則可能發生錯誤#include

int fun(long n) //宣告引數為長整型的函式fun() }

m=a[0]*10000+a[1]*1000+a[2]*100+a[3]*10+a[4]; //得到新的5位數

return m;

} int main()

5樓:匿名使用者

#include

int fun(long n) }

//重新變成五位數字,並返回這個數字

m=a[0]*10000+a[1]*1000+a[2]*100+a[3]*10+a[4];

return m;

} int main()

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

這道題來考點是運算 符自優先順序,負號 的運算子優先順序相等 表示式 x m 先試圖將m付給x 然後加1,但是前有有個負號 所以當負號和n進行運算的時候,x已經變成4了,所以x 4 表示式 x x 8 n 其中n先加1等於4然後去除8 等於2 所以 4 2等於 2 c語言問題,請高手幫忙解釋一下這個...

C語言關於稜形的演算法,請高手解釋一下

3全部你好abs 這個函式是求一個數的絕對值,需要加math.h標頭檔案,這裡列印菱形是從 2到2是以0為原點,第一個for是迴圈次數 也就是列印幾行。第二個for 是控制每行列印的空格和 的數量以構成菱形。i 2 j 2時 abs i abs j 2 不滿足 2,所以列印 空格 也就是當i 2時只...

c語言的題幫忙解釋一下謝謝,兩道C語言題,請幫忙看看,詳細解釋一下,謝謝

應該選b吧,整形資料int與字元陣列char儲存方式不一樣,將字串c表示的就是地址,輸入資料時,不用取地址符號 整數則需要 看書要仔細啊 因為c 是陣列,所以scanf 賦值的時候不需要 正確的是b c是陣列,陣列名本身就是一個地址,所以不必再寫取地址版符號 了。而b是一個整型變數,儲存在一個地址中...