|
C語言之形參和實(shí)參
1).定義
形參:形式參數(shù)。
就是定義函數(shù)的時(shí)候,寫在函數(shù)名小括號(hào)后面的參數(shù)叫形參
實(shí)參:實(shí)際參數(shù)。
就是調(diào)用函數(shù)的時(shí)候,調(diào)用函數(shù)時(shí)寫在函數(shù)名小括號(hào)后面的參數(shù)就叫實(shí)參
2).注意項(xiàng)
a.實(shí)參既可以放常量,也可以放變量,還可以放表達(dá)式;形參:它其實(shí)可以理解為就是這個(gè)函數(shù)的局部變量
b.實(shí)參給形參傳值,其實(shí)只是相當(dāng)于給函數(shù)的形參(局部變量)賦值
c.值傳遞:在函數(shù)內(nèi)改變了形參的值,不會(huì)影響到外面的實(shí)參
d.在C語言中,除了數(shù)組以外,所有的類型作為實(shí)參傳遞都是值傳遞
二 有參函數(shù)
帶參數(shù)的函數(shù)定義語法:
void 函數(shù)名(類型 參數(shù)名)
{
函數(shù)體;
}
應(yīng)用場景:當(dāng)函數(shù)完成某個(gè)功能必須要外界傳入一些數(shù)據(jù)的時(shí)候,就用參數(shù)
tips:代碼例子如下
#include <stdio.h>
/* 判斷一個(gè)數(shù)是不是水仙花數(shù)*/
void isFlower(int num)
{
int bai = num / 100;
int shi = num / 10 % 10;
int ge = num % 10;
//如果 百*百*百 + 十*十*十 + 個(gè)*個(gè)*個(gè) 等于這個(gè)數(shù)
if( bai*bai*bai + shi*shi*shi + ge*ge*ge == num){
//就是水仙花數(shù)
printf("%d是水仙花數(shù)\n",num);
}else{
// 否則 不是水仙花數(shù)
printf("%d不是水仙花數(shù)\n",num);
}
}
//2、寫一個(gè)函數(shù),求指定某個(gè)數(shù)到某個(gè)數(shù)之間所有的整數(shù)的累加和
//如:3到8,算出3+4+5+6+7+8 = ?
void getN2MSum(int n,int m)
{
int sum = 0;
if(n < m){ //n比m小的情況
for (int i=n; i<=m; i++) {
sum += i;
}
}else{ //m比n小的情況
for (int i=m; i<=n; i++) {
sum += i;
}
}
printf("%d到%d之間的和為%d\n",n,m,sum);
}
// 3、用函數(shù)來實(shí)現(xiàn)判斷一個(gè)年份是不是閏年
void isRunYear(int year)
{
if( year % 400 ==0 || (year%4==0 && year %100!=0) )
{
printf("%d年是閏年\n",year);
}else{
printf("%d年是平年\n",year);
}
}
int main(int argc, const char * argv[])
{
//調(diào)用語法:函數(shù)名(實(shí)參列表);
isFlower(200);
getN2MSum(100,1);//10+11+12....+20
isRunYear(1900);
return 0;
}
51最常用實(shí)參延時(shí)
void delay(void)//固定時(shí)間
{
unsigned int i,j ;
for(i=0;i<100;i++)
{
for(j=0;j<800;j++) ;
}
}
51最常用形參延時(shí)
void delay(uint k)//可變時(shí)間
{
unsigned int i,j ;
for(i=0;i<k;i++)
{
for(j=0;j<800;j++) ;
}
}
LCD12864帶指針多形參函數(shù)
void Display(uchar zhuoyou, uchar ye, uchar shuonie, uchar *p)
{
uchar i;
Select_zhuoyou(zhuoyou);
Set_ye(ye);
Set_shuonie(shuonie);
for(i=0;i<16;i++)
{
wridat(p[i]);
}
Set_ye(ye+1);
Set_shuonie(shuonie);
for(i=0;i<16;i++)
{
wridat(p[i+16]);
}
}
先到此,后續(xù).............
|
評(píng)分
-
查看全部評(píng)分
|