1020 字
5 分钟
【C语言学习之路】第三、四节课——函数定义与数据类型
2021-09-27
2024-01-13
c

前言#

由于中秋假期冲掉了一节编程课,就两节课内容一起写了。第三节课大概讲了变量的定义,一些变量定义的规则。第四节课大概讲了数据的类型。之前的课程有:

第一节课——环境设置

第二节课——C 基本语法


函数定义#

我们知道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这样的简单作业,这里就不展示了。

【C语言学习之路】第三、四节课——函数定义与数据类型
https://hoyue.fun/myc_3_4.html
作者
Hoyue
发布于
2021-09-27
最后更新于
2024-01-13
许可协议
CC BY-NC-SA 4.0
评论