对于新手菜鸟的我:
为了了解更多的基础知识,应该主动去学习,毕竟身处于信息时代,网络上最不缺的就是学习资源了。
推荐
C语言菜鸟教程
C语言网教程
入门程序helloworld分析01
helloworld.c
#include <stdio.h>
int main(void){
//这是一个完整的C程序
printf("hell0 world\n");
return 0;
}
一、头文件
#include <stdio.h>
这个是程序的第一行,作用为在我们的代码中该行所在的位置引入stdio.h
这个文件内的全部内容,更简单的说,就像一个粘贴的操作,而此刻大家应该想到,#include
后尖括号< >
里的文件也可以是其他头文件,这个”其他头文件“不仅仅可以是标准头文件,还可以是自定义的头文件。当然,#include
后不仅可以用< >
将头文件给包含起来,也可由用英文状态下的” “
将头文件给包含起来,等下也会讲一下这两个的区别。
#include
语句是C预处理器指令(preprocessor directive)的一个例子,这些是编译器在编译代码之前要做的准备工作,称之为预处理(preprocessing)
再来说说stdio.h
这个文件,不用觉得奇怪,它和我们平常见到的 123.txt 并无差别,只是后缀名不同而已,这个名字表示:标准输入输出头文件,正如英文:standard input/output header
,它包含了与输入输出相关的函数(比如printf
)的信息,在C语言的世界中,人们称出现在文件顶部的信息集合为头(header),C实现通常都带有多个头文件。
总结
// # 表示这是一个预处理操作
//include 头文件包含
头文件:标准头文件 | 自定义
//< > 寻找头文件的方式
默认去系统目录寻找,通常用于寻找标准头文件
//" " 寻找头文件的方式
默认去工程目录寻找,找不到再去系统目录寻找,通常用于寻找自定义头文件
//<stdio.h> 这是默认需要包含的头文件(因为程序肯定会有输入、输出);其他头文件,使用与之相关的函数时,才要包含
//stdio.h 文件名.扩展名 (扩展名表示文件的类型)
文件名能体现出文件的内容
.h 表示这是C/C++ 头文件
// stdio == std i o == standard input output(标准输入输出)
如何正确使用<>还是" "?
//< > 寻找头文件的方式
默认去系统目录寻找,通常用于寻找标准头文件
//" " 寻找头文件的方式
默认去工程目录寻找,找不到再去系统目录寻找,通常用于寻找自定义头文件
为什么要包含头文件?
头文件中含有一些声明和已编译好了的函数,可以提高程序时间复杂度和空间复杂度,简化程序。
如stdio.h头文件中包含scanf,printf,sprintf等函数,只有包含了stdio.h头文件才能正常使用,否则无法使用,只能自己编写其他函数代替
头文件有什么内容?
头文件是标准C库函数的信息头集 。头文件包含有函数信息(函数原型)
不同的头文件存放不同的函数信息;如标准输入输出头文件只放与输入输出相关的函数信息。
如:头文件 函数信息
输入输出类(stdio.h) | printf 、 scanf 、 gets 等等 |
---|---|
数学计算类(math.h) | pow、 求幂 、 sqrt(开方)、 求根 等等 |
字符串操作类(string.h) | strlen 等 |
//printf ---- 输出函数 —stdio.h
//scanf —输入函数 —stdio.h
//pow —求幂 —math.h
//sqrt —开方 —math.h
//总结:完美要使用C库函数,则必须包含其信息所在的头文件
//还可以通过手册(C/C++函数手册)C++标准库参数手册来查找所要包含的头函数
二、主函数
int main() //主函数:
一个C程序(我们不考虑例外的情况)总是从main()函数开始执行。我们可以对自己使用的其他函数任意命名,但是main()必须是开始的函数。每个C程序中必须有它!
圆括号
的功能呢?它表明main()
是一个函数。以后,我们将遇到更多的函数。现在,请记住这个函数就是C程序的基本模块。
int指明main()函数的返回类型
,这意味着main()函数返回值的基本类型为整数
。返回到哪里呢?返回给操作系统
。为什么要有返回值呢?打个比方,就像皇上交代大臣去办事,大臣完成后总要复命,向皇上禀告,告诉皇上是成功还是失败。
函数名后面的圆括号一般包含传递给函数的信息。在我们这个简单的例子中没有传递任何信息,因此圆括号内包含了单词void。以后我们将看到更多传递参数的例子。
总结:
//C程序的基本单元是:函数
//C程序是由一个一个函数组成的
//主函数 子函数
//主函数是一个特殊的函数
//1、主函数是程序的入口,即程序是从主函数开始执行的
//2、主函数结束,程序结束
//3、子函数只有被调用时,才会执行
//4、如何区分主函数和子函数?通过函数名: 主函数必须是main
//5、一个.c源文件,最多只能有一个主函数(可以没有)
//6、一个完整的程序必须有 且只能有一个主函数,但可以有多个子函数
#include <stdio.h>
void add(){
printf("add函数执行.... \n");
}
void adc(){
printf("adc函数执行.... \n");
}
int main(void){
//这是一个完整的C程序
add();
printf("hell0 world\n");
return 0;
}
三、花括号
{
/*... */
}
在C程序中,通常所有的C函数都使用花括号来表示函数体的开始与结束。它们的存在是必不可少的,因此我们不能丢掉它们。并且仅有花括号{}能起到这种作用,小括号()和中括号[]都不行。
花括号还可以用来把函数中的语句聚集到一个单元或代码块中。
四. Return 语句
return 0;
return 语句(返回语句)是程序的最后一个语句。在 int main(void)中 int 表示 main()函数的返回值应该是一个整数。C标准要求 main()这样做。带有返回值的 C语言函数要使用一个 return 语句,该语句包括关键字 return,后面紧跟着要返回的值,然后是一个分号。对于 main()函数来说,如果你漏掉了 return语句,则大多数编译器将对你的疏忽提出警告,但仍将编译该程序。此时,你可以暂时把 main()中的 return语句看作是保持逻辑连贯性所需的内容。但对于某些操作系统(包括 DOS 和 UNIX )而言,它有实际的用途。