前言
我认为,函数就像是一座工厂,它可以将我们提供的数据进行加工,转化为我们需要的数据,从而提高代码运行效率。
目录
一、主函数
主函数就是一个工程的主要程序,一个工程内必须包含有且仅有一个主函数。主函数的写法非常简单,如下图
int main()
{
return 0;
}
那么这些代码分别代表什么意思呢?别着急,在函数部分的最后,我再来详细谈谈我的理解。
二、库函数
库函数是C语言自带的一类函数,是由C语言的创建者写出并不断完善的一类函数。下面我就来介绍一下我目前接触到的库函数。
1)printf
我们知道,print是打印的英文单词,那么printf即为print function,也就是打印函数,它的作用是在屏幕上打印出我们需要的数据,书写格式如下(例如在屏幕上打印"Hello World")
#include <stdio.h>
int main()
{
printf("Hello World");
return 0;
}
如图,当我们需要打印一串字符时,只需要在printf后加上(" 所需打印的字符 ")即可。需要注意的是,由于printf是C语言的库函数,所以当我们使用它的时候,需要调用包含printf函数的头文件,调用格式即"#include <stdio.h>"。
当然,我们需要打印一个变量时,我们需要用到一个格式符,例如打印一个整型变量a,如下图
#include <stdio.h>
int main()
{
int a = 10;
printf("%d",a);
return 0;
}
运行这段代码我们可以发现,屏幕上会打印出一个10。printf里的%d是一个格式符,代表了一个整型(十进制),后面跟上一个,a说明这个%d代表了变量a的值,因此输出10。当我们需要在同一个printf函数中输出多个变量值时,格式符需与变量名对齐,例如按顺序打印a,b的值
#include <stdio.h>
int main()
{
int a = 10;
int b = 20;
printf("%d %d",a ,b);
return 0;
}
此时屏幕上会依次打印10 20。若需打印n个变量则以此类推。关于代表不同变量的格式符我将会在讲操作符(我所了解到的)时详细解说。
2)scanf
scanf函数是一种读取函数,它可以读取我们在键盘上输入的数据并参与程序运算。例如,我们可以定义一个整型变量a,并手动给a赋值,然后用printf函数将a打印出来,如下图
#include <stdio.h>
int main()
{
int a = 0;
scanf("%d",&a);
printf("%d",a);
return 0;
}
与printf不同,scanf读取数据后需要将数据存入一个变量中,因此我们需要找一个变量来接收数据,而每个变量在内存中都有一个地址,这时我们在接收变量前加上一个&(取地址操作符),这样计算机就能将数据精准地存入变量中了。
3)strlen
strlen是一个用来计算字符串长度的函数,它的用法非常简单,如下
#include <string.h>
int main()
{
int len = strlen("abc");
return 0;
}
如此便能计算字符串abc的长度。需要注意的是,strlen的返回值为整型,且需要调用头文件<string.h>。
4)getchar
getchar的作用也是读取数据,但它与scanf不同的地方在于它只能读取字符,且只能读取单个字符,使用方式也与scanf有所不同,具体写法如下
#include <stdio.h>
int main()
{
char ch = 0;
ch = getchar();
return 0;
}
即定义一个字符型变量,并将输入的字符赋值给该变量。
5)putchar
putchar与printf相似,用于打印单个字符,用法较简单,如打印字符型变量ch
#include <stdio.h>
int main()
{
char ch = 'a';
putchar(ch);
return 0;
}
三、自定义函数
函数的存在大大提高了我们代码的运行效率,除了C语言提供的库函数外,我们当然也可以针对特定的工程自定义一些函数,用以缩减代码运行时间,提高运行效率。
让我们从主函数讲起,如图
int main()
{
return 0;
}
首先,我们可以看到一个int,即整型,说明这个函数的返回值类型为整型,与定义变量相同,变量类型int后的main即为函数名,而main为主函数独有的名称,当你定义一个函数并起名为main时,计算机会自动将其当做主函数。现在让我们写一个自定义函数,例如
int add(int x,int y)
{
int z = 0;
z = x + y;
return z;
}
我们看到,这个函数完成了加法运算,函数名后面的括号中定义了两个变量x,y,即对这个函数输入两个变量x,y,然后计算x+y的值并赋值给z,即z=x+y,后面接着return z,即返回z的值。那么,当我们对该函数输入x,y后,经过加工,该函数会返回给我们一个z。
由于主函数就是程序主体,故主函数的返回值并不重要,习惯性写作return 0。
当我们写好一个函数后,如何使它发挥作用呢?接下来,我们就来看看如何在主函数中调用一个自定义函数,如图
#include <stdio.h>
int add(int x,int y)
{
return ( x + y );
}
int main()
{
int a = 5;
int b = 10;
int c = 0;
c = add( a , b );
printf("%d",c);
return 0;
}
将主函数中的a,b放入函数add中进行加法运算,如图中写法时,在函数add中,x = a,y = b。计算完毕后,将函数add的返回值赋给c,此时c = a + b,那么,printf的打印值就是15。
总结
本篇主要总结了函数的基本知识,关于更多的库函数的使用方法,我将会在学习整理之后再解释说明。