C語言程式輸出結果,求大神詳細解釋

2021-05-04 18:27:57 字數 893 閱讀 7728

1樓:汐日南莘

#include

void fun(int p)//注意所有符號要是在英文狀態下輸入main()

//輸出結果是21

2樓:孫毅超

(1)首先要明白,因為這樣定義的fun函式執行完後並不能影響原來a的值,因而main程式中輸出的a值就是預先賦的1;要想函式執行完後改變a的值,則需要*與&來傳遞引數。參考下面的程式:

#include

void fun(int *p)

main()

上面的程式就是用地址傳遞引數值,即函式之間傳遞的是引數的地址,於是a的值就會被改變。而你原來的函式由於只是單向值傳遞,也就是a的值拷貝到p後,p並不能再拷貝到a,因此p值得改變並不能影響a。

(2)再次就是要明白前++與後++的區別,前++是先自加一再呼叫數值,而後++是先呼叫數值再自加一,所以,fun函式中p被賦的是d自加一前的值,也就是2,因而fun函式輸出的是2。

(3)綜上,整個函式輸出即為21外加一個回車~

3樓:飛天航母

本題從main函式開始執行,a=1,執行fun(a)時要知道主函式的a是實參,此處將a=1的值傳遞到void fun(int p)中的p(此處p為形參),即此處的p=1,在執行p=d++是p是等於2的,此處是先執行p=d,然後執行d++,所執行了此句之後p=2,d=3;然後執行輸出為2,在回到主函式,由於之前已近說過p是形參,所以p的值不會返回到主函式(除非執行了return p可將p值返回),所以a值還為1,

即a值不變 再輸出a值為1 再輸出換行

結果21

4樓:元者風範

函式不會影響a的值,因為a是形參

函式的輸出結果是2

程式的輸出結果是21

c語言讀下列程式,寫出程式的輸出結果希望有詳細解析

輸出結果為 max value is 36 因為主程式內的雙重迴圈,對陣列的每個元素都乘以3並放回原處。輸出語句則呼叫函式,求取這個二維 陣列中的最大值,所以函式返回值是36 c語言 讀下列程式,寫出程式的輸出結果。希望有詳細的解析 標頭檔案,輸入輸出 字串處理 include include 定義...

求大神用c語言編寫這道程式,求大神用c語言編寫這道程式

請家現再幫我解決補充問題 間 20137月514 44 25 目 想用if功能實現輸入字元y則顯示123否則顯示321 include char main void 何輸入char或者int結都確 vc6.0執行結 請輸入 y n y 12 ress any key to continue請輸入 y...

請教這段C語言程式輸出結果為什麼是1023沒有

靜態全域性變數初值是0。所以arr初值是0。最後輸出迴圈是10次,包含10個陣列元素1111000000對於迴圈巢狀邏輯,要是理不清,在原程式迴圈的地方加printf語句把對於的一些變數列印處理會更清晰。比如我下面把原碼新增了printf。include int change int n,int s...