『壹』 c語言中定義自己的函數時的有什麼要求,答最多的採納
int My (int a,int b)
{
int c;
c = a*b;
return c;
}
這是一個函數,My=函數名稱。每個函數必須有一個函數名稱。這個名稱可以在其它函數中調用。
My前面有一個int,這個叫做函數的返回類型。也就是這個函數執行完成後,要返回一個數值。
My的後面有兩個int,這個是函數的輸入參數。一個是被乘數a,一個是乘數b。所以這個函數的功能是計算a*b,並返回計算機的結果。這個就彷彿計算器中的乘法運算。
上面這個函數還可以寫成很多的形式。
void My(int a,intb)
void My(void)
void My(int *a,int *b)
void My(int &a,int &b)
void *My(int a,int b)
int *My(int a,int b)
int My(void)
可能還有其他的形式,這個就需要根據自己的要求編寫。
#include <iostream>
#include <conio.h>
#include <dos.h>
using namespace std;
int My (int a,int b)
{
int c;
c = a*b;
return c;
}
void main()
{
int m;
cout<<" ok"<<endl;
m = My(3,4);
printf("%d ",m);
getch();
}
上面的程序代碼在BCB6中測試通過。可以不斷的修改函數,以理解測試各種類型的函數。
『貳』 c語言中參數是什麼概念
函數的參數分為形參和實參兩種。
形參出現在函數定義中,在整個函數體內都可以使用,離開該函數則不能使用。實參出現在主調函數中,進入被調函數後,實參變數也不能使用。
形參和實參的功能是作數據傳送,發生函數調用時,主調函數把實參的值傳送給被調函數的形參從而實現主調函數向被調函數的數據傳送。
舉個例子:
定義一個函數s=f(a,b),功能是將a和b的差賦值給s,那麼,a和b就是這個函數的兩個參數。
(2)c語言參數定義要求擴展閱讀:
C語言的參數傳遞方式
方法有3種方式:值傳遞、地址傳遞、引用傳遞
tips:
被調用函數的形參只有函數被調用時才會臨時分配存儲單元,一旦調用結束佔用的內存便會被釋放
值傳遞和地址傳遞,傳遞的都是實參的一個拷貝
C語言中實參和形參之間的數據傳遞是單向的「值傳遞」,單向傳遞,只能由實參傳給形參,反之不行
輸出格式並沒有選擇%p而是選擇了%d,因為十進制的數看起來更直觀。
值傳遞
如果只是傳遞值的話:
#include <stdio.h>
//值傳遞傳值
void swap( int x, int y);
int main()
{
int a=2,b=3;
printf("before:實參為a,b a=%d,地址為%d b=%d,地址為%d ",a,&a,b,&b);
swap(a,b);
printf("after:實參為a,b a=%d,地址為%d b=%d,地址為%d ",a,&a,b,&b);
return 0;
}
void swap(int x,int y)
{
int tmp;
tmp=x;
x=y;
y=tmp;
printf("inside:形參為x,y x=%d,地址為%d y=%d,地址為%d ",x,&x,y,&y);
}
『叄』 C語言中定義函數時,什麼時候必須定義形參,什麼時候可以省略,求指點~謝謝啦
函數聲明時只需寫出形參類型。
函數定義時必須寫出形參類型和變數名。
C語言中的標准函數printf便使用這種機制。在聲明不確定形參的函數時,形參部分可以使用省略號「…」代替。「…」告訴編譯器,在函數調用時不檢查形參類型是否與實參類型相同,也不檢查參數個數。
(3)c語言參數定義要求擴展閱讀
示例
例如:
void ConnectData(int i,...)
在上面的代碼中,編譯器只檢查第一個參數是否為整型,而不對其他參數進行檢查。
對於可變參數的函數,需要進行特殊的處理。首先需要引用 <stdarg.h> 頭文件,然後利用va_list類型和va_start、va_arg、va_end 3個宏讀取傳遞到函數中的參數值。
這幾個宏的定義如下(在 ANSI C 中):
type va_arg( va_list arg_ptr, type );
void va_end( va_list arg_ptr );
void va_start( va_list arg_ptr, prev_param )。
『肆』 c語言函數參數
C語言中參數分為實際參數(實參)與形式參數(形參)。
實際參數是在調用時傳遞個該函數的參數。
形式參數是在定義函數名和函數體的時候使用的參數,目的是用來接收調用該函數時傳如的參數。
實際參數是在調用時傳遞個該函數的參數.
舉一個很簡單的例子:
#include<stdio.h>
int f(int b) // b為形參
{
return b;
}
void main()
{
int a=1;
printf("%d",f(a));// a為實參
}
『伍』 c語言中什麼是參數
如何寫可變參數的C函數以及這些可變參數的函數編譯器是如何實現的呢?下面是我為大家整理的關於c語言的參數介紹及使用,希望可以幫到大家哦。
簡單的可變參數的C函數
下面我們來探討如何寫一個簡單的可變參數的C函數.寫可變參數的C函數要在程序中用到以下這些宏:
void va_start( va_list arg_ptr, prev_param );
type va_arg( va_list arg_ptr, type );
void va_end( va_list arg_ptr );
va在這里是variable-argument(可變參數)的意思.
這些宏定義在stdarg.h中,所以用到可變參數的程序應該包含這個頭文件.下面我們寫一個簡單的可變參數的函數,改函數至少有一個整數參數,第二個參數也是整數,是可選的.函數只是列印這兩個參數的值.
void simple_va_fun(int i, ...)
{
va_list arg_ptr;
int j=0;
va_start(arg_ptr, i);
j=va_arg(arg_ptr, int);
va_end(arg_ptr);
printf(%d %dn, i, j);
return;
}
我們可以在我們的頭文件中這樣聲明我們的函數:
extern void simple_va_fun(int i, ...);
我們在程序中可以這樣調用:
simple_va_fun(100);
simple_va_fun(100,200);
從這個函數的實現可以看到,我們使用可變參數應該有以下步驟:
1)首先在函數里定義一個va_list型的變數,這里是arg_ptr,這個變數是指向參數的指針.
2)然後用va_start宏初始化變數arg_ptr,這個宏的第二個參數是第一個可變參數的前一個參數,是一個固定的參數.
3)然後用va_arg返回可變的參數,並賦值給整數j. va_arg的第二個參數是你要返回的參數的類型,這里是int型.
4)最後用va_end宏結束可變參數的獲取.然後你就可以在函數里使用第二個參數了.如果函數有多個可變參數的,依次調用va_arg獲取各個參數.
如果我們用下面三種 方法 調用的話,都是合法的,但結果卻不一樣:
1)simple_va_fun(100);
結果是:100 -123456789(會變的值)
2)simple_va_fun(100,200);
結果是:100 200
3)simple_va_fun(100,200,300);
結果是:100 200
我們看到第一種調用有錯誤,第二種調用正確,第三種調用盡管結果正確,但和我們函數最初的設計有沖突.下面一節我們探討出現這些結果的原因和可變參數在編譯器中是如何處理的.
可變參數在編譯器中的處理我們知道va_start,va_arg,va_end是在stdarg.h中被定義成宏的,由於1)硬體平台的不同 2)編譯器的不同,所以定義的宏也有所不同,下
面以VC++中stdarg.h里x86平台的宏定義摘錄如下(''號表示折行):
typedef char * va_list;
#define _INTSIZEOF(n)
((sizeof(n)+sizeof(int)-1)&~(sizeof(int) - 1) )
#define va_start(ap,v) ( ap = (va_list)&v + _INTSIZEOF(v) )
#define va_arg(ap,t)
( *(t *)((ap += _INTSIZEOF(t)) - _INTSIZEOF(t)) )
『陸』 怎樣定義C語言函數中的參數(實參、形參)
不知道函數調用原理的話,很難說得清楚的。粗略的說在C中函數其實是分成三個部分,分別是聲明、實現和使用。聲明就是告訴C有這么個函數,實現就是這個函數的完整代碼,使用則是調用這個函數幫你做運算或者是做事情。為了讓函數能做更多的事情,就需要一種方法能向函數傳遞性息,最可靠、最方便的方法就是參數傳遞,C就是這樣做的。參數傳遞也不是簡單的一件事情,首先在調用者和被調用者之間得有個約定,大家約定好了參數放什麼地方,如何使用,這個就稱為調用約定。現在我們回過頭來看什麼叫實參和形參。由上面的敘述可以看到,函數其實有一定的獨立性的,參數是在調用約定下放在指定地方供函數使用的,在我們實現函數的時候,實際的參數是什麼我們還不知道,但我們知道有多少參數,分別是什麼數據類型的和放在什麼地方(順序),這個是由調用約定來保證的。我們知道的這些就是形式的或者說是邏輯的,我們在實現函數(編寫函數體)的時候需要給他們命名,以便使用,這些在函數實現的時候命名的形式上的參數就是形式參數,簡稱形參。而在實際調用發生的時候,調用者會將實際的參數放在約定好了的地方,這個實際參數簡稱實參。函數被運行的時候實參和形參形成了一一對應,對形參的操作就變成了對實參的操作。
對調用約定還有需要說明的就是,現在常用的調用約定都是傳值的,也就是說只是傳遞了一個副本,這樣做的結果就是你對形參的操作不會被傳遞出來。
是否可以解決您的問題?
『柒』 C語言里的參數是什麼意思
分為形參和實參,實參就是主調函數中的參數,形參是被調函數的參數。運行時實參把替換掉形參。就實現把實參的值傳給形參。不懂翻書,很詳細。
『捌』 簡述C語言中函數的形式參數定義時的注意事項 求解...
1、形參個數不能太多,多了就用結構體指針吧;
2、不需要攜帶數據返回的放在前面,需要攜帶數據返回類型的放在後面吧;
3、不要直接傳遞結構體哦;
4、一般地,指針類型最好加上const修飾,除非有特殊用途;
5、盡量不要使用bool類型做為形式參數;
6、別忘了給一個簡潔好聽的名字
『玖』 C語言的形式參數和實際參數的定義以及區別,怎樣很好的理解,謝謝。
形參:全稱為"形式參數"是在定義函數名和函數體的時候使用的參數,目的是用來接收調用該函數時傳如的參數.
實參:全稱為"實際參數"是在調用時傳遞個該函數的參數.
形參和實參的類型必須要一致,或者要符合隱含轉換規則,
當形參和實參不是指針類型時,在該函數運行時,形參和實
參是不同的變數,他們在內存中位於不同的位置,形參將實
參的內容復制一份,在該函數運行結束的時候形參被釋放,
而實參內容不會改變.
而如果函數的參數是指針類型變數,在調用該函數的過程
中,傳個函數的是實參的地址,在函數體內部使用的也是
實參的地址,即使用的就是實參本身.所以在函數體內部
可以改變實參的值.
給你一個很簡單的例子:
int f(int b) /*b為形參*/
{ return b;}
main()
{
int a=1;
printf("%d",f(a));/*a為實參*/
}
『拾』 在c語言中形參與實參是如何定義的
在C語言中,形參即為形式參數。它在整個函數編譯的時候,沒有實際的數據賦於它,僅僅作於定義某個函數或者函數名。
而實參既為實際參數。顧名思義,在函數中,有一個特定的數據賦值給它,可以作於在函數中進行運算。
比如:
void
main()
{
int
a=1,b;
b=function(a);
//a作於在函數中進行運算,是實參
}
int
function(int
c)
//c作於定義function函數,是形參
{}