1樓:匿名使用者
1,形參前面加了void是空函式 意思是不要求返回值麼?那這題不是把宣告部分全部返還了麼?
增加void表示不用返回值,即在函式中要使用return時,不用帶值。比如返回值為int型,那麼要用類似return 0;,而本例直接return;即可。
void inv(int x[ ],int n)中x,n都是傳入引數,x是陣列,所以函式內修改後,對應的陣列a也會改變,但是n是普通變數,對其改變後,不會改變主函式的變數值。
2,形參說明inv(a,10)這個a表示的是陣列a麼? 還是說就是陣列名(代表陣列的首地址)?inv(a,10);能否等同於inv(a[10]);??
void inv(int x[ ],int n)這裡說明x是陣列,這裡inv(a,10)呼叫函式時,陣列名a就是陣列的首地址,inv(a,10);能不等同於inv(a[10]);,inv(a[10])這個是錯誤的。
2樓:
void inv(int x[ ],int n)實際是void inv(int *x,int n)無返回值是說只能 inv(a,10);這樣用x+inv(a,10),x=inv(a,10),printf("%d",inv(a,10)) 都是錯誤的
inv(a,10) 中的a是a[10]=;這個陣列的陣列名代表陣列首地址
inv(a[10])是錯誤的
3樓:匿名使用者
函式名前面加void表示此函式不會返回數值,就是說你不能寫類似
k=inv(a,10);或if ( inv(a,10) )這樣來用。
void inv(int x,int n);和void int (int *x,int n);是一樣的,
子程式會開設一個臨時變數x來存放傳入的指標(地址),這個宣告中
並沒有描述傳入的指標指向的陣列的尺寸,大概第二個引數n就是描
述x能訪問的陣列的數值個數。所以在程式中inv(a,10);是將a陣列的
首地址傳入,子程式中用x[3]就可以訪問a[3]了。也就是用x可以訪問
a陣列的所有資料,但如果寫成inv(a+1,10);時x只能訪問a陣列的後9
個資料單元。
inv(a[10]);是錯的,因為:a[10]不合法,a陣列只能訪問a[0]到
a[9],這個10屬於下標值或相對於a陣列首地址的偏移量,如果寫
inv(a[10]);這樣會傳送a陣列後面存放的一個整型資料當作地址
指標給x,而且第二個引數沒有給出。
4樓:匿名使用者
1,形式引數之前,一個無效的空函式不需要返回值? ,這個問題是不是所有的宣告部分回來了嗎?
增加無效,不返回一個值,而不是要使用該函式的返回值。作為返回值的型別是int,然後使用類似的回報0,這種情況下,直接返回。
無效的投資(詮釋x ,int n)在x和n是傳入的引數,x是一個將改變陣列,陣列內的相應功能,但n普通變數,它的改變,該變數的值不會改變的主要功能。
2, - 參與投資(一,10)a是一個陣列a是什麼?或者說,是一個陣列的名稱(在代表的陣列中的第一個地址)?這裡的x是一個陣列,inv(10)函式被呼叫的能力相當於投資([10]); ??
無效的投資(詮釋x ,int n)的投資(一,10); ,陣列,a是一個陣列的第一地址,inv(,10);不等同於inv([10]); inv([10]),這是錯誤的。
5樓:匿名使用者
1.如果函式沒有返回值,那麼應宣告為void型別2.a表示陣列的首地址,代表了整個陣列。
inv(a,10)不等於inv(a[10])inv(a,10)傳遞的是a這個陣列,而a[10]表示傳遞的是陣列的第11個元素(已經溢位啦)
6樓:邏輯錯誤
回答.1,沒看懂你說的什麼意思.宣告全部返回?什麼意思?
2,這個a其實就是一個指標,指向陣列的首地址.
你把void inv(int x[ ],int n)寫成void inv(int* x,int n)也可以的.
C語言為什麼通常形參與實參的變數符號不同
沒問題啊,都是區域性變數,隨便你使用 你的問題,有兩個地方說明一下 一個是變數作用域問題,區域性變數起作用的地方是,從宣告變數開始到包含變數的函式結束為止 全域性變數,從宣告這個變數開始,到這個檔案的末尾 例如你的程式,ab在主函式中,作用域就是在主函式當中,出了這個函式,就不起作用了 在子函式中,...
C語言中,形參的預設儲存類別為A auto B static C register D extern
c。在函式內部或複合語句內定義變數時,如果沒有指定的儲存型別或使用了auto說明符,系統就認為所定義的變數具有自動類別。形參即函式的自變數,其初值 於函式的呼叫。只有在程式執行過程中呼叫了函式,形參才有可能得到具體的值,並參與運算求得函式值。形參表相當於變數說明,但應特別注意 此處只能使用型別識別符...
值傳遞實現的是引數的單向傳遞實參形參,指標傳遞實現的
一樓解答的很好,不過有個筆誤 m i應該是 mm i,不知道我理解的對不對。函式呼叫時的實參和形參之間的資料是單向的什麼傳遞 實參傳遞給形參是單向傳遞,形參變數在未出現函式呼叫時,並不佔用記憶體,只在呼叫時才佔用。呼叫結束後,將釋放記憶體。執行一個被呼叫函式時,形參的值如果發生改變,並不會改變主調函...