前言

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


函数定义

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

这里的一切都有始有终,却能容纳所有的不期而遇和久别重逢。
最后更新于 2024-01-14