前言
由于中秋假期冲掉了一节编程课,就两节课内容一起写了。第三节课大概讲了变量的定义,一些变量定义的规则。第四节课大概讲了数据的类型。之前的课程有:
函数定义
我们知道main()是一个主函数,我们使用C的时候也会用到很多的函数,例如abs()、pow()等,我们一般把这些形如xxx()的称为函数xxx,这些函数有一些是集成于头文件中的,可以直接调用。当然我们也可以自己写一个属于自己的函数,我们像定义主函数一样。
例如,自己定义一个比较两个数大小,并返回最大值的函数。首先我们先定义这个函数的名称,在这里就用max来演示。(max函数在C语言中没有,C++中有集成了)
int max(int x,int y)
解释:
- 在max前面的int是返回值数据类型,表示返回的值是一个整数。如果没有返回值,则int应改为void,表示空。
- 括号内的int x,int y是定义输入值,这里定义多少个就要在调用时传入多少个参数,中间用“,”隔开,注意这是定义参数,不是普通的定义变量,中间不能用“;”。
- 在括号后面不能加“;”,因为其为定义函数,不是语句。在调用时则需要加“;”。
接下来像main函数一样,我们加上{},在这里面写上我们的语句。
int max(int x,int y)
{
if(x>y) return x;
else return y;
}
解释:
- 语句内容:如果x>y,则返回x,不然就返回y。关于判断语句if()的写法可以看第二节课——C 基本语法。
- 有返回值说明改函数调用时是代表了一个数,在调用时就要用逻辑符号。例如:maxnum=max(a,b);
- 传入的变量名称可以和定义的不同,但在函数中只能用该函数定义有的变量名。
接下来我们看这些自定义的函数的位置,因为C语言遵循先定义后调用的规则,所以你可以在main函数之前定义。当然为了美观,你也可以在其之后定义,但是在main函数之前应该申明其在后面定义了。
在前定义:
#include<stdio.h>
#include<math.h>
int max(int x,int y)
{
if(x>y) return x;
else return y;
}
int main(void)
{
int a,b;
scanf("%d %d",&a,&b);
printf("Max number is %d.\n",max(a,b));
return 0;
}
在后定义:
#include<stdio.h>
#include<math.h>
int max(int x,int y);
int main(void)
{
int a,b;
scanf("%d %d",&a,&b);
printf("Max number is %d.\n",max(a,b));
return 0;
}
int max(int x,int y)
{
if(x>y) return x;
else return y;
}
细心的大家已经发现了什么不同——在后定义需要在main函数前申明,而申明是一句语句,需要";"结尾!!!
数据类型
变量其实只不过是程序可操作的存储区的名称。C 中每个变量都有特定的类型,类型决定了变量存储的大小和布局,该范围内的值都可以存储在内存中,运算符可应用于变量上。
变量的名称可以由字母、数字和下划线字符组成。它必须以字母或下划线开头。大写字母和小写字母是不同的,因为大小写的ASCII码不同。
一般来说有以下几种基本的变量类型:
char | 通常是一个字节(八位)。这是一个整数类型。 |
int | 对机器而言,整数的最自然的大小。 |
float | 单精度浮点值。单精度是这样的格式,1位符号,8位指数,23位小数。 |
double | 双精度浮点值。双精度是1位符号,11位指数,52位小数。 |
void | 表示类型的缺失。 |
unsigned xxx | 表示无符号定义。 |
作业一
根据老师的要求,大概也就是写helloworld这样的简单作业,这里就不展示了。
Comments NOTHING