-------------------------------------- android培训、java培训、ios培训期待与您交流! --------------------------------
函数
不同的功能写在不同的函数里
1.定义函数的目的
将一个常用的功能封装起来,方便以后调用
2.定义函数的步骤
1>函数名:函数交什么名字
2>函数体:函数是干什么的,里面包含了什么代码
3.函数的定义格式
返回值类型函数名 (形式参数列表)
intmain ()
{
函数体
}
4.定义函数需要明确的东西
1>起一个有意义的函数名
2>确定参数
3>是否要返回值 return
练习题
//定义abcd的变量,求平局值,调用平均值函数.
#include <stdio.h>
//这个函数是用来求平均值,用得时候直接调入main函数即可.
// 返回值类型 函数名 形式参数列表
int average (int num1,int num2)
{
return (num1+num2)/2;//函数体
}
//num1,num2等于在average的函数里面定义的一个做运算的变量.和别的地方的没有关系.
int main()
{
//a=10 b=9 c=a和b的平均值.不用在麻烦的算,直接调用average函数即可,
int a =10,b = 9;
int c= average(a,b);
printf("c的值为%d\n",c);
//aa=100 bb=50 ,d=aa和bb的平均值,不用在麻烦的算,直接调用average函数即可,
int aa =100,bb = 50;
int d= average(aa,bb);
printf("d的值为%d\n",d);
return0;
}
/*
定义3个函数,
求两个整数的差
打印一条横线
打印n条横线
定义函数的步骤
1>根据函数的作用,起一个有意义的名称
2>确定函数的形参个数
3>确定函数的返回值
*/
#include <stdio.h>
void line(int n)
{
for (int i ;i<n ;i++ )
{
printf("***********\n");
}
}
void printline()
{
printf("--------\n");
}
int minuse(int a,int b)
{
return a - b;
}
int main()
{
line(5);
printline();
printf("%d\n",minuse(10,8));
return 0;
}
形参与实参
形参
把int a (int num1,int num2)这个值传入大括号中 接受外界传进来的值
#include <stdio.h>
int sum(int num1,int num2)
{
return(num1+num2);
} | |
int main() | |
{ | |
int a =1000; |
int b =270;-----|
int c =sum(a,b) //称为函数的实际参数(简称实参)
printf("c is %d\n",c);
return 0;
}
调用函数时 实参会把对应的值掉给形参
是参与形参的个数必须相同
int sum(int sum1,int sum2)
{
int sum =10这样是不可行的,需要和括号里面的相同,属于重复定义
return:(num1+num2)修改形参不会更改实参的值
}
1.形式参数:定义函数时,函数后面的参数(简称形参)
2.实际参数:调用函数时,传入的具体数据(简称实参)
3.实参个数必须等于实参个数
4.函数体内部不能定义和形参一样的变量
5.如果是基本数据类型,作为函数形参,纯粹是值传递
修改函数内部形参的值,并不会影响外面实参的值.
6.一个函数可以没有形参,也可以有无限多个形参
返回值 return
return的作用
1>退出函数
2>返回一个具体只给函数调用者
void test()
{
return---可用可不用,视条件而顶
}
void代表没有返回值
不用在写.return 0,或者 return 返回值
2.如果不明确声明返回值类型,默认就是int类型
test()
{
}
1.默认情况下,不允许有函数的名称一样
2.函数不能嵌套定义
3.函数不能重复定义,但可以重复声明
函数声明可以直接写入main函数,调用的定义之前
4.如果有函数的声明没有函数的定义
1>编译器可以通过,因为编译智慧检测语法合理不合理
2>链接报错,因为链接的时候会检测函数是否定义
<stdio.h> h= header file 头文件
1.函数的定义放在.c文件 声明放在.h文件
2.如果要使用某个.c文件种定义的函数,只需要#include这个,c文件对应的.h文件就行
3..h文件的作用,被别人拷贝,编译连接的时候不需要管.h文件
include的作用
1>拷贝右边文件所有内容到#include的位置
2>自定义的文件要用""双引号 系统自带的用<>
3>#include <stdio.h> 的目的是:拷贝printf函数的声明
多文件开发
张三写main函数-.c -. o
李四写其他函数 -c. -. o 最后cc张三.o 李四.o=./a.out
链接:
把项目中所有相关联的.o目标文件和C语言函数库合并在一起,生成可执行文件
return 返回0 代表正常退出
返回1 或别的数,代表异常退出
但无论返回多少都不影响程序,只是系统会做日志记录
\n是转移字符.有特殊含义的字符
.t代表输出一个tab键
在printf中一个中文相当于3个字符
printf算的是有多少个字符数,不是字数