“main函数”以及“printf函数和库函数”的理解

main函数

首先我们来谈谈“main函数”。

main函数我们可以由main的意思进行理解,main的英文翻译为主要的,因此main是一个主要的函数,也就可以叫做主函数。

为了更好的说明main函数的作用,下面有一个实际的例子。

在这里插入图片描述

在这里插入图片描述

​​​​​​​​这是一个完整的代码,通过逐过程的调试我们可以看见一个小箭头,这里就会有人产生疑问,为什么箭头偏偏出现在第三行呢?其实就是因为main函数是程序的入口,程序是从main函数的第一行逐行开始,而继续重复先前操作进行调试,箭头开始由第三行变到第四行,再由第四行变到第五行…

因此可以说明程序的入口一定是从main函数开始,如果没有main函数,程序就找不到入口,也就无法运行

在这里插入图片描述
值得注意的是main函数有且仅有一个,即使一个程序有再多的C语言文件,都只能有一个main函数。
在这里插入图片描述

main函数思考(别学我这样写,写着玩的)

main函数是程序的如果,main函数既然是一个函数,那他就和其他函数一样需要有一个返回类型

例子1

这是我们正常写的代码

#include<stdio.h>
int main()
{
	int a = 0;
	printf("%d",a);
	return 0;
}

正常写的是int main return 0,在运行结束时下面会有一句话"代码为xxx",这里的代码为0,这个0就是return 0的那个0
在这里插入图片描述
如果我们将return 0修改了会怎么样呢?

例子2

#include<stdio.h>
int main()
{
	int a = 0;
	printf("%d",a);
	return 1;
}

在这里插入图片描述
红色方框中显示的是1
这里的返回值我们可不可以换成其他类型呢?

例子3

#include<stdio.h>
int main()
{
	int a = 0;
	printf("%d",a);
	return 'a';
}

我们将返回值修改成字符’a’后,红色方框显示为97,97这个数字和字符a有什么特别的关系吗?为什么偏偏是97呢?
在这里插入图片描述
在网上搜了一下后发现,字符a的ASCLL码值就是97,所以我们返回的值其实是将字符a变成了97
在这里插入图片描述

例子4

上面的例子都是让main函数返回类型为int类型返回的,如果我们将int改成char会怎么样?

#include<stdio.h>
char main()
{
	int a = 0;
	printf("%d", a);
	return 'a';
}

这里返回值是’a’,但是最后显示为97
在这里插入图片描述

例子5

#include<stdio.h>
char main()
{
	int a = 0;
	printf("%d", a);
	return '?';
}

返回值是?,结果为63
在这里插入图片描述

例子6

如果用double类型呢?

#include<stdio.h>
double main()
{
	int a = 0;
	printf("%d", a);
	return 0.0001;
}

这里有点怪了返回值明明写的0.0001,但是最后却变成1了
在这里插入图片描述

例子7

#include<stdio.h>
double main()
{
	int a = 0;
	printf("%d", a);
	return 2.1111;
}

这样写返回的结果也不对
在这里插入图片描述

总结

上面这样写有很多问题,后面我在网上搜了一下main函数的返回值必须为int 类型,这是我搜的结果
在这里插入图片描述
所以我这样写完全就是吃饱了没事干写着玩的,建议老老实实的正常写

printf函数

然后再来谈谈“printf函数和库函数”。

printf函数是一个库函数,它的作用是将你所想要的信息打印在屏幕上

例子1

#include<stdio.h>
int main()
{
	printf("hello world\n");
	printf("hello world\n");
	printf("hello world\n");
	printf("hello world\n");
	return 0;
}

这样是直接输出括号里的字符串,而\n表示的是换行,所以在输出的时候屏幕上我们没有看到\n
在这里插入图片描述

例子2

printf函数也不只这一种打印方式,它可以打印多种数据类型,就比如:

#include<stdio.h>
int main()
{
	int a = 10;
	printf("%d\n", a);
	printf("%c", 'a');	
	return 0;
}

在这里插入图片描述
输出的结果是10和a,第二个a和第一个a是不一样的,注意看第一个输出类型是%d,表示的是输出整形,第二个输出类型是%c,表示的是输出字符,而这个字符就是a

例子3

printf函数可以支持连续打印

#include<stdio.h>
int main()
{
	int a = 0;
	printf("%d %c",a,'a');
	return 0;
}

在这里插入图片描述

#include<stdio.h>
int main()
{
	int a = 0;
	printf("%s%s","hello","world");
	return 0;
}

在这里插入图片描述

例子4

printf函数也可以支持算数运算

#include<stdio.h>
int main()
{
	int a = 0, b = 1;
	printf("%d\n", a + b);
	printf("%d", 1 + 0);
	return 0;
}

在这里插入图片描述

这里的a=0,b=1,第一个printf函数输出的是a+b,a+b=1,所以输出的是1
第二个printf函数中直接输出的是1+0的结果,也就是1

库函数

rintf函数作为一个库函数,具有库函数的特征,库函数是为了让程序员能够更方便的使用代码,所以将许多函数组成一个函数库而形成的,当使用库函数时必须要有头文件,因为函数所组成的函数库需要由头文件声明,如果不声明使用了这个函数库,那么你所用的函数将识别不出

那么头文件又是怎么样的呢?
以printf函数为例,它的头文件的格式为#include<stdio.h>,当声明了头文件stdio.h时你就可以使用stdio.h所包含的函数组
在这里插入图片描述
当我们没有声明头文件的时候编译器就不认识printf,然后报错
在这里插入图片描述

  • 13
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值