C語言之形參和實參
1).定義
形參:形式參數(shù)。
就是定義函數(shù)的時候,寫在函數(shù)名小括號后面的參數(shù)叫形參
實參:實際參數(shù)。
就是調(diào)用函數(shù)的時候,調(diào)用函數(shù)時寫在函數(shù)名小括號后面的參數(shù)就叫實參
2).注意項
a.實參既可以放常量,也可以放變量,還可以放表達式;形參:它其實可以理解為就是這個函數(shù)的局部變量
b.實參給形參傳值,其實只是相當于給函數(shù)的形參(局部變量)賦值
c.值傳遞:在函數(shù)內(nèi)改變了形參的值,不會影響到外面的實參
d.在C語言中,除了數(shù)組以外,所有的類型作為實參傳遞都是值傳遞
二 有參函數(shù)
帶參數(shù)的函數(shù)定義語法:
void 函數(shù)名(類型 參數(shù)名)
{
函數(shù)體;
}
應用場景:當函數(shù)完成某個功能必須要外界傳入一些數(shù)據(jù)的時候,就用參數(shù)
tips:代碼例子如下
#include <stdio.h>
/* 判斷一個數(shù)是不是水仙花數(shù)*/
void isFlower(int num)
{
int bai = num / 100;
int shi = num / 10 % 10;
int ge = num % 10;
//如果 百*百*百 + 十*十*十 + 個*個*個 等于這個數(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、寫一個函數(shù),求指定某個數(shù)到某個數(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ù)來實現(xiàn)判斷一個年份是不是閏年
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ù)名(實參列表);
isFlower(200);
getN2MSum(100,1);//10+11+12....+20
isRunYear(1900);
return 0;
}
51最常用實參延時
void delay(void)//固定時間
{
unsigned int i,j ;
for(i=0;i<100;i++)
{
for(j=0;j<800;j++) ;
}
}
51最常用形參延時
void delay(uint k)//可變時間
{
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ù).............
|