能講一下C語言形參如果是指標變數如何使用嗎

時間 2021-08-30 09:32:05

1樓:匿名使用者

一般來說在函式中如果最終要返回或者設定什麼結果,通常是定義一個變數(與你結果相同資料型別),在程式中進行運算,之後再返回或者再設定,這樣主要是為了方便和好理解,具體到你這題上,因為最終結果是要放在*n裡,它的初始值也是0,所以不要j這種中間變數也是可以的,比如說可以是

void fun(int *a,int *n)a[*n]='\0'; //這行其實是沒啥太多意義的}再比如說一個更簡單的例子,比如說有

int fun(int a,int b)

這個fun是返回a,b之和,如果要簡化因為計算很簡單當然也可以裡面不要sum,直接改為return a+b; 但是如果計算過程很複雜呢,不定義中間變數就只能把**寫在一行上,理解和閱讀還有除錯都會比較麻煩

2樓:老子很涼

如圖傳入的兩個引數是陣列地址和符合條件篩選個數變數的地址。如果不適用j為中間變數每次計算時需要對傳入的 地址取值,理論上這1000次取值操作的效率遠低於增加j為中間變數效率。

個人認為直接把個數作為函式返回值最合適。

int fun(int *a)

{  int j = 0;

for(int i= 7;i<=1000; i++)if() //同圖條件

j++;

return j;

n = fun(aa);

c語言函式呼叫時,實參和形參是如何傳遞的?什麼時候要寫指標型變數?求高手指點~

3樓:匿名使用者

形參bai在函式定義時表示的du一種佔位符zhi,實參就是裡面存有實際變數dao值或者版

常量,函式呼叫時,實參權值會自動傳遞給形參變數。指標比較複雜了。是變數的地址,如果引數型別是指標型別,則必須把實參變數的地址傳遞過去。當然在函式內也是間接引用實參變數的。

比如void f(int * p) //形參是指標型別變數下面是呼叫形式

f(&a); //呼叫函式,實參是變數a的地址。

4樓:孟於清

比如void main(void)是形參···· void main(unsigned int m)是實參

5樓:jyw金

回答:1.傳值呼叫,形參是實參的一個拷貝,形參和實參不是同一個儲存單元。

2.傳地址呼叫,將實參的地址傳給形參,形參和實參操作同一儲存單元。

6樓:巢秀榮容子

這程式是你寫的嗎?

要是你寫的話

你就看下面的三段話

就能找出。

1.比如你定義一個函式專void

add(int

a,int

b),這裡的屬a和b就是形參。

2.當你進行函式呼叫的時候,add(1,

2),這裡的1和2就是實參。

3.形參就是沒有賦值的變數,實參就是有賦值的變數

c語言中 雙重指標為什麼能讓 指標變數作為形參的函式 實現引用傳遞?

7樓:

1、malloc是全域性的,要用free來釋放,並不會被解構函式自動釋放,函式結束不會自動**,這個與new/delete不一樣。

2、即使**了,也只是在堆(heap)中標記為可以再分配,由於指標還在,所以仍然可以使用,只不過結果不可預料。

3、儘量用new/delete,這樣可以藉助編譯器做一道檢驗,少惹麻煩。

c語言,關於形參實參單向值傳遞!

8樓:匿名使用者

分兩種情況bai給你對比一下du

函式形參zhi用普通變數,當dao函式被呼叫的時候,實參的版值被賦值給權

了形參,函式被呼叫的時候開闢了記憶體空間給形參,也就是資料被複制了,然後函式開始處理形參的資料,這個時候和實參的資料是沒有任何關係了。當函式結束的時候形參的記憶體空間是要被釋放,或者說刪除的,所以對實參啥也沒幹,只是拿了實參的資料複製了一份,然後對複製的那一份算的很起勁,結果最後刪除了,啥也沒幹。

函式形參用指標,當函式被呼叫的時候,實參指標,也就是把地址複製了一份給形參,但是函式中我們用取內容符號'*'對形參指標所指的內容,同時也是實參指標所指的同一份內容進行處理,函式結束的時候形參指標的值是被釋放了,可是形參指標,同時也是實參指標所指的內容還在。

感覺講的蠻清楚了,不懂再追問。

C語言 簡述一下“陣列和指標的關係”

我就是很煩 陣列是一類同型別變數的集合,類似於屬於上的集合的概念,數字也是有集合的,比如整數集,實數集等。陣列也是一個集合,陣列的名字是集合的名字,陣列後面的方括號裡的數字,表示這個集合的大小,陣列名前面的型別說明符,表示這個陣列是什麼型別的集合,比如 int a 5 a是陣列的名字,因為我們後面要...

關於C語言指標的問題,希望高手幫忙解答一下

先說程式一 void swap int px,int py 如果修改為如下 那麼就會傳送值的互換 void swap int px,int py 下來看程式二 void fsort char name,int n name是乙個陣列的首位址 希望能幫你理解指標 你要明白,指標變數有兩個相關的值,乙個...

追問再次請問一下,如果是85年屬牛,打算13年10月6日服裝店開業,10月6日這天日子好不好?犯不犯衝

2013年10月恭候您 乙丑金牛 店開業的黃道吉日 2013年10月06日 農曆09月 小 02日 星期日 沖豬 己亥 煞東 好日子 2013年10月09日 農曆09月 小 05日 星期三 沖虎 壬寅 煞南 2013年10月13日 農曆09月 小 09日 星期日 沖馬 丙午 煞南 2013年10月1...