复习C语言,记录一下重要的知识点,参考书为《C Primer Plus 第六版》
一、初识C语言
产生:1972年,贝尔实验室的Dannis Ritch 和 Ken Thompson 在开发UNIX操作系统的时候设计了C语言。在过去40年里,C语言已成为最重要、最流行的编程语言之一。
C语言的优点:高效性, 可移植性,强大而灵活,面向程序员
缺点:涉及指针的编程错误难以察觉;有很多运算符,可以写出复杂的‘晦涩难懂的代码(可以看看 国际C语言混乱代码大赛IOCCC,很有趣)
应用范围:小型计算机,PC,大型机;C++也是以C语言为基础。
高级编程语言与编译器:
计算机编程语言有高级语言和低级语言,像C、JAVA、Pascal等比较接近自然语言的就是高级语言,汇编语言等用指令或01代码来表示的就是低级语言。高级语言更接近人类,低级语言更靠近机器。当然用两种类型的语言写的程序执行所需要的时间也是不同的,高级语言花费的时间要长一些。计算机执行一个C/C++程序需要经过编译、链接然后才能执行。
GNU编译器:
GNU项目始于1987年,是一个开发大量免费软件的集合(GNU means "GNU's Not UNIX" 即GNU不是UNIX )。GNU编译器集合(也被称为GCC,其中包含GCC C编译器)是该项目的产品之一。用 gcc 命令便可调用GCC C编译器。许多使用 gcc 的系统都用 cc 作为 gcc 的别名。
二、C语言概述
典型的C程序:
# include //预处理指令
int main (void) //main()总是第一个被调用的函数
function a( ) //函数是C程序的构造块,将函数中包含语句
function b( )
C语言有6种语句组成:标号语句,复合语句,表达式语句,选择语句,迭代语句,跳转语句。
程序的组成:
1、#include指令和头文件
# include <stdio.h> 相当于把 stdio.h 文件中的所有内容都输入到该行所在的位置上,就是一种copy-paste 的操作
# include 是一条C预处理指令,通常C编译器在编译前会对源代码做一些准备工作,即预处理。stdio.h文件是标准输入/输出 头文件,在大多数情况下,头文件包含了编译器创建最终可执行程序需要的信息,它帮助编译器把程序正确地组合在一起。
2、main( )函数
C程序一定是从main( )函数开始执行,圆括号是用于识别main( )是一个函数。函数是C程序的基本模块。
3、注释
注释有两种方式:
/*这是一段注释*/ 符号之间的内容都是注释
//这是一行注释 仅该行被注释
4、花括号、函数体和块
{
..............
}
花括号( { } )标记函数体的开始和结束,不能省略。花括号还用于把函数多条语句合并为一个单元或块。
5、声明
声明是C语言最重要的特性之一。
int num; //这是一条声明
int是一种数据类型, num是一个变量名称。编译器使用这些信息为num变量在内存中分配存储空间。int是关键字,表示一种基本数据类型; num是标识符,即一个变量、函数或其他实体的名称。
在C语言中,所有变量必须先声明再使用。
声明变量的数据类型,计算机才能正确地存储、读取和解释数据。给变量命名时要使有意义的变量名或标识符(必要时可以写下注释)。C语言区分大小写。
6、赋值
num = 1; /*这是一条赋值表达式语句*/
C语言是通过赋值运算符而不是赋值语句完成赋值操作。
7、return语句
int main(void) 中的int 表明 main( ) 函数应返回一个整数。。有返回值的函数都要return 语句。
多个函数举例:
# include <stdio.h>
void bulter(void); //函数原型(告知编译器在程序中要使用该函数,指明了函数属性)
)
in main(void)
{
printf("........");
butler(); //函数调用 (告知编译器正在使用该函数)
return 0;
}
void bulter(void) //函数定义(源代码)
{
printf("!!!!!!");
}
合适执行bulter() 函数取决于它在main() 函数中被调用的位置,而不是它定义在文件中的位置。C标准建议,要为程序中用到的所有函数提供函数原型。