函数笔记

/*
#include
int function(void)
{
printf("abcdefg!!");
printf("hijklmn!!");

return 1;
}

void print_num(void)
{
int num=function();
printf("%d\n",num); //输出abcdefg hijklmn 1

}

int main(void)
{
print_num();
}





#include
char function(void)
{
printf("abcdefg!!");
printf("hijklmn!!");

return 65;
}

void print_num(void)
{
char num=function();
printf("%c\n",num);
} //输出abcdefg hijklmn A

int main(void)
{
print_num();
}







//函数的分类
/* 按照函数形参返回值把函数分为四种情况:无形参无返回值、无形参有返回值、
有形参无返回值、有形参有返回值。


编写函数之前考虑的3个方面来确定函数框架 :
1)函数的名字怎么命名
2)要不要形参,要几个形参,形参类型是什么
3)要不要返回值,返回什么数值

*/



//无形参无返回值
//定义一个函数,输出helloword

#include

//写函数3要素:
//1)函数名的确定
//2)要不要函数参数,要几个参数
//3)要不要返回值,返回什么值

//函数类型 函数名 形参
//无 ps名字 无

void Print_String(void) //函数的定义
{
printf("hello world!!\n"); //{}函数体 函数执行的主体
printf("hello function!!\n");
printf("this is program!!\n");
}

int main(void)
{
Print_String(); //函数的调用
} //把所有的函数语句都执行一遍
//函数无类型无返回值,调用函数时不需要写void



//无形参有返回值

#include

//函数有类型 函数必须return return和函数类型是捆绑在一起的
//这里函数类型是int整型 函数必须return一个整型的数值

int Print_String(void)
{
printf("hello world!!\n");
printf("hello function!!\n");
printf("this is program!!\n");

return 1;//如果函数执行结束,在这里返回一个值 1
//函数有返回值 函数就要有函数类型(函数类型就是函数返回值类型)
//float?
}

int main(void)
{
Print_String(); //函数返回值可以不接收
}

#include
//函数返回值调用
char Print_Hello(void)
{
printf("Helloworld!!\n");

return 65;
}

int main(void)
{
//c语言当中 变量的定义必须放到所有执行语句之前
//通俗的讲就是放到花括号起始位置
char C1=Print_Hello();
Print_Hello();

printf("%c\n",C1);
printf("%d\n",Print_Hello());
}




#include
void Compare_MaxVal(int Num1,int Num2);

int main(void)
{
int Num1=3,Num2=4;
int Val1=5,Val2=6;
Compare_MaxVal(Num1,Num2);
Compare_MaxVal(Val1,Val2);
Compare_MaxVal(7,8);
}

void Compare_MaxVal(int Num1,int Num2)
{
if(Num1>Num2)
printf("the MaxNum is %d\n",Num1);
else
printf("the MaxNum is %d\n",Num2);
}




#include
void Find_Max(int Num1,int Num2)
{
if(Num1>N

um2)
printf("Max is Num1%2d\n",Num1);
else if(Num1printf("Max is Num2%2d\n",Num2);
else
printf("Num1==Num2\n");
}

int main(void)
{
int Num1=5,Num2=9;
int Sn=1,Sm=3;

Find_Max(Num1,Num2);
Find_Max(Sn,Sm);
Find_Max(4,8);
}





#include //定义函数求两个数最大值并输出
void Find_Max(int ,int );

int main(void)
{
int Num1=5,Num2=9;
int Sn=1,Sm=3;

Find_Max(Num1,Num2);
Find_Max(Sn,Sm);
Find_Max(4,8);
}

void Find_Max(int Num1,int Num2)
{
if(Num1>Num2)
printf("Max is Num1 %d\n",Num1);
else if(Num1printf("Max is Num2 %d\n",Num2);
else
printf("Num1==Num2\n");

}




#include
//定义函数求两个数的最大值并返回

#define ERROR -1

int Find_Max(unsigned int,unsigned int);

int main(void)
{
int Num1=5,Num2=9;
int Sn=1,Sm=3;

int Rec=Find_Max(Num1,Num2);
printf("%d\n",Rec);
printf("%d\n",Find_Max(4,8));
printf("%d\n",Find_Max(5,9));
}

int Find_Max(unsigned int Num1,unsigned int Num2)
{
if(Num1>Num2)
return Num1;
else if(Num1return Num2;
else
return ERROR;//函数中允许有多种返回情况,但一次调用只能返回一个返回值
} //函数遇到return执行结束



#include
int Compare_MaxVal(int Num1,int Num2);

int main(void)
{
int Num1=3,Num2=4;
int Val1=5,Val2=6;
int resualt;
printf("%d\n",Compare_MaxVal(Num1,Num2));
resualt=Compare_MaxVal(1,2);
printf("%d\n",resualt);
printf("%d\n",Compare_MaxVal(Compare_MaxVal(Val1,Val2),8));
}

void Print_String(void)
{
printf("function!!\n");
}

int Compare_MaxVal(int Num1,int Num2)
{
Print_String(); //函数的嵌套
if(Num1>Num2)
return Num1;
else
return Num2;
}




//求1~100的和或者求某数的阶乘!!!

#include
int Sum(int num);

int main(void)
{
printf("%d\n",Sum(100));
}

int Sum(int num)
{
int sum=0;
if(num==1)
sum=1;
else
sum=num+Sum(num-1);
return sum;
}




#include
int Summarize_1toNum(int Num);

int main(void)
{
printf("%d\n",Summarize_1toNum(5));
}

//求1到某数的和
int Summarize_1toNum(int Num)
{
int Sum=0;

if(Num==1)
Sum=1;
else
Sum=Num+Summarize_1toNum(Num-1);
return Sum;
}



#include
int Num(int Num);
int x;
int main(void)
{
int x=1;
int y;
Num();
{
int x=9;
printf("%d\n",x); //9
}
printf("%x\n",y); //未知
printf("%x\n",x); //1 局部和全部 以局部使用
}

int Num(int Num)
{
printf("%x\n",x);//0
}




#include

int num2;// 全局变量 存储在静态内存 如果没有赋初值 初值为0
//从定义开始,到本文结束一直有效

void function(void);

int main(void)
{
int num1;//局部变量 存储在栈区 如果没有赋初值 出值未知

function();
printf("main num1= %d\n",num1);
printf("main num2= %d\n",num2);
}

void function(void)
{
num2

+=5;
printf("func num2 = %d\n",num2);
}



#include
int num2;

void function(void);
int main(void)
{
int num1;
function();
printf("main num1 = %d\n",num1);
printf("main num2 = %d\n",num2);
{
int num3=10;
printf("num3 %d\n",num3);

}
//printf("%d\n",num3);
}

void function(void)
{
num2+=5;
printf("func num2 = %d\n",num2);
}





//static
#include
int SNum(int Num);
int main(void)
{
int i;

for(i=1;i<=5;i++)
printf("%d\n",SNum(i));
}
int SNum(int Num)
{
static int x;
x+=Num;
return x; //1 3 6 10 15
}






#include
void C(int num1,int num2);
int main(void)
{
int num3=3,num4=4;
C(num3,num4);
printf("%d %d\n",num3,num4);
}

void C(int num1,int num2)
{
int tmp;
tmp=num1;
num1=num2;
num2=tmp; //注意函数用传递只是Num3和Num4的值 3 4
//并不是传递Num3 和Num4本身的值(存储空间)
}


//用指针交换两个数
#include
void C(int *num1,int *num2);
int main(void)
{
int num3=3;num4=4;
C(&num3,&num4);
printf("%d %d\n",num3,num4);
}

void C(int *num1,int *num2)
{
int tmp;
tmp=*num1;
*num1=*num2;
*num2=tmp;

}








#include
void P(int num[],int count);
int main(void)
{
int num[]={1,2,3,4,5};
P(num,sizeof(num)/sizeof(int));
}

void P(int num[],int count)
{
int i;

for(i=0;iprintf("%d\n",num[i]);
}




#include
void P(char num[]);
int main(void)
{
char num[]="this is arrey function!!\n";
P(num);
}

void P(int num[])
{
printf("%s\n",num);
}





#include

void P(char num[]);

int main(void)
{
char num[]="this is arrey!!\n";
P(num);
printf("%s\n",num);
}

void P(char num[])
{
num[0]='*';
printf("%s\n",num);
}








/*
#include
int counter(int i)
{
static int count;
count =count+i;
return count;
}

int main(void)
{
int i,j;
for(i=0;i<=5;i++)
j=counter(i);

#if 1
printf("this is C!!\n");
#endif
}

*/


/*
#include

int counter(int i)
{
static int count;
count =count+i;
return count;
}

int main(void)
{
int i,j;
for(i=0;i<=5;i++)
j=counter(i);
printf("%d\n",j);
#if 0
printf("this is C!!\n");
#else
printf("this is C#\n");
#endif
}
*/


#include
#define PI 0

int counter(int i)
{
static int count;
count =count+i;
return count;
}

int main(void)
{
int i,j;
for(i=0;i<=5;i++)
j=counter(i);
printf("%d\n",j);

#ifdef PI //不关心PI的宏原值 只关心是否有PI这个宏
printf("this is C!!\n");
#else
printf("this is C#\n");
#endif
}





相关文档
最新文档