C语言学习笔记————–Hello World,一切的开始

/ 0评 / 1

一、为什么要学习C语言

        C语言是现代高级语言的根,现代的很多高级语言都是源自C语言,即使现在C语言的适用范围依然十分流行,也十分广泛,并且学习了C语言对于我们学习其他语言也是很有帮助的。

二、C语言是什么

        C语言于1972年发明,首次使用是用于重写UINX操作系统(UNIX以前是用汇编写的),C语言是一门面向过程的语言,非面向对象的语言。计算机的基本功能就是计算,因此一门程序设计语言的计算能力是非常重要的。C语言提供了34种运算符,计算类型及其丰富,其中包括了最基本的加减乘除运算。C语言之所以生命力如何强大,很大一部分是因为它拥有丰富的数据类型。C语言的数据类型有:整型(int)、实型(float)、字符型(char)、数组类型(int [])、指针类型(void *)、结构体类型(struct)、共用体类型(union)等。众多数据类型中,最强大的是指针,通过指针我们可以直接访问内存地址。指针使用得当的话,不仅可以节省代码量,还可以优化内存管理、提高性能。因此,指针是一个非常重要的概念,必须重视。如果你说C语言中除了指针,其他都学得挺好的,那你干脆说你没学过C语言。正因为C语言数据类型丰富,运算能力极强,因此很多数据库都是用C语言编写的,比如DB2、Oracle等。由于C语言允许直接访问物理地址,可以直接对硬件进行操作,因此它既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位(bit)、字节和地址进行操作,而这三者是计算机最基本的工作单元。对比汇编语言,C语言可读性好,易于调试、修改和移植,代码质量与汇编语言相当。在一个环境上用C语言编写的程序,不改动或稍加改动,就可移植到另一个完全不同的环境中运行。
        由于C语言具有强大的数据处理能力,而且允许直接访问物理地址,直接对硬件操作,因此它适于编写系统软件、图形处理、单片机程序、嵌入式系统开发甚至是用于科研。很多操作系统的底层都是用C语言写的,比如android。iOS开发中的核心语言是Objective-C(简称OC),OC是在C语言的基础上加了一层面向对象语法。

三、第一个C语言程序

        由于我这里使用的是MAC系统,因此我这里就使用Xcode来做开发,在windows下我们可以使用Visual stdio之类的工具来做开发,当然还有其他的开发工具,就比如Linux/Mac/Windows下都可以使用Qt集成开发环境也是支持C语言的开发的。打开这些开发工具创建一个Hello World的命令行项目,这里我得到的代码是;

  
#include                                         //导入函数库
int main(int argc, const char * argv[]){                  //程序主函数          
   printf("Hello World!\n");                              //输出语句
   return 0;                                              //函数返回值
}

程序在控制台打印出的结果为: Hello World!

代码分析:
        第一句:#include 是C语言的预处理指令之一,所谓预处理,就是在编译之前做的处理,预处理指令一般以 # 开头。#include 指令后面会跟着一个文件名,预处理器发现 #include 指令后,就会根据文件名去查找文件,并把这个文件的内容包含到当前文件中。被包含文件中的文本将替换源文件中的 #include 指令,就像你把被包含文件中的全部内容拷贝到这个 #include 指令所在的位置一样。如果被包含的文件拓展名为.h,我们称之为"头文件"(Header File),头文件可以用来声明函数("函数"就是面向对象中的"方法"),要想使用这些函数,就必须先用 #include 指令包含函数所在的头文件。#include 指令不仅仅限于.h头文件,可以包含任何编译器能识别的C/C++代码文件,包括.c,.hpp,.cpp等,甚至.txt,.abc等等都可以也就是说你完全可以将第3行到第9行的代码放到其他文件中,然后用 #include 指令包含进来。不过,如果是系统自带的文件,最好用<>;如果是开发人员自己创建的文件,最好用""。stdio.h 是C语言函数库中的一个头文件,里面定义了一些标准输入输出函数。在main.c的第1行代码中,用#include指令包含了stdio.h文件。这里之所以包含 stdio.h 文件,是因为在第7行中用到了在 stdio.h 内部声明的printf函数,这个函数可以向标准输出设备(比如显示器屏幕)输出数据,屏幕上输出的文字就是第7行代码printf("Hello, World!\n");造成的,双引号""内的文本为C语言的字符串。
        第二句:前面也已经提到,C中的函数就是面向对象中的"方法"。C语言是一门面向过程的语言,是以过程为中心的编程思想,就是先分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用函数就可以了。一个C程序中一定会有一个main函数,也只能有一个main函数。main函数是整个C程序的入口。main.c的第3行代码就定义了一个main函数。main函数的返回值为int类型,接收2个参数,其实可以不写参数。
以上就是我们的第一个C语言程序。

C语言的代码处理过程

        那么C语言是怎么把英文的代码处理成机器可以运行的程序呢?其实C语言是一种编译型的语言,在成为可执行程序之前经历了两个步骤:编译->链接。编译器将我们写的代码编译成为.o/.obj后缀的文件,在这个过程中还进行了语法检查,如果语法错误是无法编译的,而链接就是将所有有关联的.o/.obj文件以及系统的C函数库组合在一起生成可执行程序,在windows系统中生成.exe可执行程序,而mac/linux下就不一样了,不过都是可执行的命令行程序,双击可执行。以上的步骤开发环境都可以一步帮我们做完。

评论已关闭。