1.函数是什么 是一个大型程序中的部分代码,由一个或多个语句组成。它负责完成某项特定任务,而且相对于其他代码,具有相对的独立性。 2.库函数 包括:IO函数、字符串操作函数、
1.函数是什么
是一个大型程序中的部分代码,由一个或多个语句组成。它负责完成某项特定任务,而且相对于其他代码,具有相对的独立性。
2.库函数
包括:IO函数、字符串操作函数、字符操作函数、内存操作函数、时间或日期函数、数学函数、其他库函数
MSDN(Microsoft Developer Network)
http://en.cppreference.com
www.cplusplus.com可以用来查找库函数中的函数
例如运用函数strcpy
#include <stdio.h>
int main(){
char arr[]="bit";
char arr2[]="##########";
strcpy(arr2,arr);//后面的arr是被拷贝的
printf("%s\n",arr2);
return 0;}
3.自定义函数
自定义函数和库函数是一样的,有函数名,返回值类型和函数参数。但是需要自己设计。
例如:
int Add(int x,int y)//对应 函数类型 函数名 参数
{
int z=0;
z=x+y;
return z;
}
找出最大值:
#include <stdio.h>
int getmax(int x, int y){
int z=0;
if(x>y)
return x;
else
return y;}
int main(){
int a=10;
int b=20;
int max=getmax(a,b);
printf("max=%d\n",max);
return 0 ;
}
将两个值进行交换:
#include <stdio.h>
void Swap(int* x, int* y){//不需要返回值所以用void函数 ,int* x是指针变量开辟一个空间来拿到a的地址
int z=0;
z=*x;//把a的值拿到z中
*x=*y;//把b的值拿到a中
*y=z;}//把a的值拿到z中
int main(){
int a=10;
int b=20;
Swap(&a,&b);
printf("a=%d b=%d\n",a,b);
return 0;}
return 0;}
4.函数的参数
实际参数
真实传导的给函数的参数例如上边的Swap(&a,&b)中的&a,&b。
形式参数
函数名后括号中的变量,因为只有在函数被点用你的过程中才实例化,所以叫形式参数。形式参数在调用完后就销毁了。所以形式参数只在函数中才有效。
例如上边的void Swap(int* x, int* y)中的 x,y。
传值调用:当实参传递给形参的时候,形参其实是实参的一分临时拷贝,对形参的修改不会影响实参。
传址调用:传址调用是把函数外部创建变量的内存地址传递给函数参数的一种调用函数的方式。这种传参方式可以让函数和函数外边的变量建立起真正的联系,也就是函数内部就可以直接作用于函数外部的变量。
上边的找出最大值和将两个值进行交换分别用了传值调用和传址调用。
练习:打印100到200的素数
#include <stdio.h>
int is_prime(int n){
int j=0;
for(j=2;j<n;j++)
{
if(n%j==0)
return 0;
}
return 1;
}
int main(){
int i=0;
for(i=100;i<=200;i++)
{
if(is_prime(i)==1)
printf("%d\n",i);
}
return 0;
}
函数嵌套调用和链式访问
嵌套调用
将一个函数放到另一个函数中调用。
链式访问
把一个函数的返回值作为另一个函数的参数。
#include <stdio.h>
int main(){
printf("%d", printf("%d",printf("%d",43)));
}//输出结果是4321
函数声明和定义
.h文件中里放声明(放的构造函数的方法),.c文件里放的定义,最后再在一个.c文件中写代码。
例如
#include"add.h"