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語言指標概念問題高手來秒殺一下
語法上應該是錯的,因為 p是二級指標,無法賦給ptr這樣一個一級指標變數 如果強制轉換下應該沒錯,但是這麼寫編譯應該無法通過 沒有錯啊,但是int p 這個不能這麼用 這個是沒有賦值的野指標,很危險的,呵呵 在執行的時候,程式申請一塊空間給這個程式的所有變數,慢 p所佔有的那個記憶體空間是有資料的 ...
幫我淺顯的解答一下什麼是資本淨額,如果是小貸公司需要如何去計算
資本淨額 1988年巴塞爾委員會推出資本充足協議,而其中突出的一點便是明確給出了銀行資本的界定,防止了銀行有意無意地擴大資本認可範圍可能導致的不審慎經營問題。銀行資本被區分為兩層次 第一級為核心資本 第二級便是補充資本或附屬資本,而資本淨額的概念也由此而來。資本淨額 net capital 核心資本...