1、库函数
在计算机科学中,函数被称为子程序,是一个大型程序中的某部分代码,由一个或多个语句块组成。负责完成某项特定任务,而且相较于其他代码,具备相对的独立性
2、自定义函数
写一个两个整数加法的函数(这个函数需要做到:输入两个整数,返回他们相加的结果)
既然这个函数是用于计算加法的,我们把函数名取名为add。当然自定义函数的函数名可以按照自己的喜好来写,就算写成aaaaa也行。不过,为了函数名拥有语义化,方便人阅读理解,我们一般使用英文来作为函数名。
// 这一段代码被称之为add函数的函数定义
int Add(int a, int b)
{
return a+b;
}
自定义函数实践
#include<stdio.h>
int Add(int x,int y) //这里的(x,y)是形参
{
int z;
z=x+y;
return z; //将z的值传回到main函数当中
}
int main()
{
int a,b;
scanf("%d %d",&a,&b);
int sum=Add(a,b); //调用Add函数(传值调用) 这里的(a,b)是实参
printf("%d",sum);
return 0;
}
不可以直接使用add自定义函数,要在main主函数中进行调用Add函数
所有的C语言代码都有一个起始入口,而这个入口就是主函数main。进入了主函数以后,才能经由主函数来调用其他函数。
写一个函数可以交换两个整形变量的内容
#include<stdio.h>
void Swap(int* pa,int* pb) //函数定义——
//函数返回类型写:void时,表示这个函数不返回任何值,也不需要返回
{
int z = 0;
z = *pa;
*pa = *pb;
*pb = z;
}
int main()
{
int a=10;
int b=20;
printf("交换前:a=%d b=%d\n",a,b);
Swap(&a,&b); //函数调用——(传址调用)取a和b的地址 传入 指针pa和指针pb中
printf("交换后:a=%d b=%d\n",a,b);
return 0;
}
不可以直接使用add自定义函数,要在main主函数中进行调用Add函数
所有的C语言代码都有一个起始入口,而这个入口就是主函数main。进入了主函数以后,才能经由主函数来调用其他函数。
写一个函数可以交换两个整形变量的内容
#include<stdio.h>
void Swap(int* pa,int* pb) //函数定义——
//函数返回类型写:void时,表示这个函数不返回任何值,也不需要返回
{
int z = 0;
z = *pa;
*pa = *pb;
*pb = z;
}
int main()
{
int a=10;
int b=20;
printf("交换前:a=%d b=%d\n",a,b);
Swap(&a,&b); //函数调用——(传址调用)取a和b的地址 传入 指针pa和指针pb中
printf("交换后:a=%d b=%d\n",a,b);
return 0;
}
?
实际参数(实参):真实传给函数的参数。实参可以是:常量、变量、表达式、函数等。无论实参是何种类的量,在进行函数调用的时,它们都必须有确定的值,以便把这些值传给形参。
形式参数(形参):是指函数名后括号中的变量,形参只有在函数被调用的过程中才实例化(分配单元),所以叫形式参数。形式参数当函数调用完成后自动销毁,因此形参只在函数中有效。
//写一个函数判断一个数是不是素数//
#include<stdio.h>
int Sushu(int x)
{
int z=0;
for(z=2;z<x;z++)
{
if(x%z==0)
{
return 0;
}
}
return 1;
}
int main()
{
int a=0;
printf("请输入一个整数:");
scanf("%d",&a);
if(Sushu(a)==1) //判断函数Sushu(a)返回的值是1还是0
{
printf("%d是一个素数\n",a);
}
else
{
printf("%d不是一个素数\n",a);
}
return 0;
}
//写一个函数判断一个年份是不是闰年//(被4整除&&一百整除||400整除的年份)
#include<stdio.h>
int Runyear(int x)
{
return ((x%4==0) && (x%100!=0) || (x%400==0) );
}
int main()
{
int a=0;
char i;
int b=0;
do{
printf("请输入年份:");
scanf("%d",&a);
if(Runyear(a)==1)
{
printf("%d是闰年\n",a);
}
else
{
printf("%d不是闰年\n",a);
}
printf("继续请按Y,结束请按N\n");
scanf("%s",&i);
if(i=='Y')
{
b=1;
}
else
{
b=0;
}
}while(b);
return 0;
}
//写一个函数,每调用一次这个函数,num就增加1//
#include<stdio.h>
void add(int*p) //定义无符号add函数,p是一个指针,指向类型为int
{
(*p)++;
printf("p的地址为%p",p);
}
int main()
{
int num=0;
printf("num的地址为%p\n",&num);
add(&num); //调用自定义函数传实参num的地址
printf("第一次调用函数num=%d\n",num);
add(&num);
printf("第二次调用函数num=%d\n",num);
add(&num);
printf("第三次调用函数num=%d\n",num);
return 0;
}
|