C语言的介绍及发展史在此就不赘述了,各百科论坛网站中对此都有详细的描述,在总结过程中我会给大家分享几个我在学习过程中用到过的不错的C语言学习的资源,废话不多说,下面来开始我们的第一个小程序,程序员必学--HelloWorld!
#include
int main()
{
printf("Hello, world!\n");
return 0;
}
虽然只有简单的几行代码,但它包含了一个C语言程序就有的各部分:
#include //第一种引入方式
#include "xxx.h"//第二种引入方式
头文件引入,引入方式有两种,第一种引入方式在编译器会在系统库文件中查找该.h文件,拿上面的例子来说就是在C的库函数文件区内查找stdio.h这个文件,然后将其包含到当前.c文件中进行编译;第二种方式是先在当前项目所在文件夹内查找xxx.h文件,如果有则将其包含到当前文件中进行编译,如果没有再到C库函数文件区查找xxx.h文件,如果还没有则产生编译错误(笔者在64位window8,window10中用codeBlocks编译时是报fatal error: xxx .h: No such file or directory的错误的,但笔者在看到有些人在网上说<>和""是是相对的,<>是先在库文件中查找如果找不到则到项目当前目录中查找,""则是先在项目当前目录中查找,再到库文件中查找,至少在笔者的编程环境下这种说法是错误的,不知道在其他编程环境中是否是对的,希望有了解的朋友可以指出)
#include语句是C语言的预处理指令,通常C编译器在编译前要对源代码做一些准备工作,这些准备工作称之为预处理
这里的stdio.h是 Standard I/O Library ,下面的printf语句便是在这个头文件中声名的,因此要使用类似printf这类的系统函数必须包含这个头文件(关于头文件的导入及其中常用相关的功能我会在以后的文章中统一整理)
int main(){
}
程序入口函数,每个C/C++程序都包含一个或多个函数,其中一个必须命名为main()。操作系统通过调用main()来运行C/C++程序。
关于函数的定义包含四部分:
1、返回值类型(此例中为int //整数类型)
2、函数名(此例中为main)
3、一个括号包围的形参列表(此例中参数为空因此只有一个括号())
4、一个大括号包围的函数体,它是一个以左花括号开始,以右花括号结束的语句块(此例中为
{
printf("Hello, world!\n");
return 0;
}
该语句块打印Hello, world!这句话,并返回一个整数类型的值0)
printf("Hello, world!\n");
打印编程界最经典的一句话--Hello, world!(关于Hello, world!的由来有上有一篇文章写的挺有意思,有兴趣的朋友可以看一下'The History of 'Hello,world' )
printf()函数是C言语中常用的命令行窗口输出函数,它是一个C语言标准格式化输出函数,定义于stdio.h文件中,同时它还是一个参数数量可变的函数,它的主要功能就是用于向终端(显示器、控制台等)输出字符。格式控制由要输出的文字和数据格式说明组成。要输出的的文字除了可以使用字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。其详细的使用方法在以后的输入输出相关的文章中会详细介绍。
语句以分号结束,一行中可包含多条语句,但必须以分号分隔。
return 0;
返回值,由于例子中的函数声明时要求的返回值为int类型(整数类型)的值,因此该函数必须有一个返回值,且类型为int 类型。关于数据类型将在数据类型相关文章中介绍。
在大多数系统中,main()函数的返回值被用来指示状态,返回值0表明成功,非0的返回值的含义由系统定义,通常用来指出错误类型。
总结:
1、C语言语句以分号结束
2、一个C语言程序应包括 1)头文件包含(即#include或#include"xxx.h")2)C语言入口函数 main() 3)其他功能性函数
3、函数包括 1)返回值类型 2)函数名称 3)参数列表 4)函数体组成
4、#Include和#include"xxx.h"之间有区别
5、使用库函数应先引入相关头文件
6、根据函数的具体定义返回相应的值
参考文献:
C primer plus, Fifth Edition
C++ primer,Fifth Edition