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,然后报错