C语言历史
最早的高级语言:FORTRAN–>ALGOL–>CPL–>BCPL–>C–>C++等
1963年英国剑桥大学推出了CPL(Combined Programming Langurage)语言。 CPL语言在ALGOL 60的基础上接近硬件一些,但规模比较大,难以实现
1967年英国剑桥大学的 Matin Richards(理查兹)对CPL语言做了简化,推出了 BCPL (Base Combined Programming Langurage)语言
1970年美国贝尔实验室的 Ken Thompson(肯·汤普逊) 以 BCPL 语言为基础,又作了进一步的简化,设计出了很简单的而且很接近硬件的 B 语言(取BCPL的第一个字母),并用B语言写出了第一个 UNIX 操作系统。但B语言过于简单,功能有限
1972年至1973年间,贝尔实验室的 Dennis.Ritchie(丹尼斯·里奇) 在 B语言的基础上设计出了C语言(取BCPL的第二个字母)。C语言即保持 BCPL 语言和B语言的优点(精练、接近硬件),又克服了他们的缺点(过于简单,数据无类型等)
C语言标准
- 1983年美国国家标准局(American National Standards Institute,简称ANSI)成立了一个委员会,开始制定C语言标准的工作
- 1989年C语言标准被批准,这个版本的C语言标准通常被称为ANSI C(C89)
- 1999年,国际标准化组织ISO又对C语言标准进行修订,在基本保留原C语言特征的基础上,针对应该的需要,增加了一些功能,命名为C99
- 2011年12月,ANSI采纳了ISO/IEC 9899:2011标准。这个标准通常即C11,它是C程序语言的现行标准
Hello World
一个简单的程序
#include <stdio.h>
int main() {
printf("hello world");
return 0;
}
main函数
main函数是程序的入口,
一个工程中可以有多个.c文件。但是多个.c文件中,只能有一个main函数
main函数的格式
- int 代表函数执行之后会返回一个整数类型的值
- main 代表这个函数的名字叫做main
- () 代表这是一个函数
- {} 代表这个程序段的范围
- return 0; 代表函数执行完之后返回整数0
main函数注意点及其它写法
- 一个C语言程序只能有一个main函数
- C语言中,每条完整的语句后面都必须以分号结尾
- C语言中除了注释和双引号引起来的地方以外都不能出现中文
- 一个C语言程序不能没有main函数
- main函数前面的int可以不写或者换成void
- main函数中的return 0可以不写
main函数的返回值
- main函数的返回值用于说明程序的退出状态。
- return 0,说明程序正常退出,返回到主程序继续往下执行。
- return 1,说明程序异常退出,返回主调函数来处理,继续往下执行。
- return 0 或 return 1 对程序执行的顺序没有影响,只是大家习惯于使用 return (0) 退出子程序而已
- 返回其它数字的含义则由系统决定。通常,返回非零代表程序异常退出。
如果 main 函数的最后没有写 return 语句的话,C99 规定编译器要自动在生成的目标文件中(如 exe 文件)加入return 0; ,表示程序正常退出。
参数多种写法不报错的原因
C语言最早的时候只是一种规范和标准(例如C89, C11等)
标准的推行需要各大厂商的支持和实施
而在支持的实施的时候由于各大厂商利益、理解等问题,导致了实施的标准不同,发生了变化
所以才会看到不同的书上书写的格式有所不同, 有的返回int,有的返回void,有的甚至没有返回值
只需要记住最标准的写法即可
输出内容-printf()
- 输出内容是一个比较复杂的操作, 所以系统提前定义好了一个专门用于输出内容的函数叫做printf函数,我们只需要执行系统定义好的printf函数就可以往屏幕上输出内容
- 但凡需要执行一个函数, 都是通过函数名称+圆括号的形式来执行
printf("hello world\n");
将要输出的内容编写到printf函数后面的圆括号中
注意: 圆括号中编写的内容必须用双引号引起来
注释
单行注释
- // 被注释内容
- 使用范围:任何地方都可以写注释:函数外面、里面,每一条语句后面
- 作用范围: 从第二个斜线到这一行末尾
- 快捷键:Ctrl+/
多行注释
- /* 被注释内容 */
- 使用范围:任何地方都可以写注释:函数外面、里面,每一条语句后面
- 作用范围: 从第一个/到最近的一个/
注释的作用
代码是写给机器的,注释是写给人的,代码的修改者的。注释不会被机器识别和运行
可以通过注释某段代码来达到测试或者对比的目的。
关键字
关键字,也叫作保留字。是指一些被C语言赋予了特殊含义的单词
关键字特征:
- 全部都是小写
- 在开发工具中会显示特殊颜色
关键字注意点:
- 因为关键字在C语言中有特殊的含义, 所以不能用作变量名、函数名等
- C语言中一共有32个关键字
关键字 | |||||||
---|---|---|---|---|---|---|---|
char | short | int | long | float | double | if | else |
return | do | while | for | switch | case | break | continue |
default | goto | sizeof | auto | register | static | extern | unsigned |
signed | typedef | struct | enum | union | void | const | volatile |
关键字分类
数据类型
char //字符数据类型
short //短整型
int //整形
long //长整型
long long //更长的整形
float //单精度浮点数
double //双精度浮点数
每种类型的大小是多少?
#include <stdio.h>
int main()
{
printf("%d\n", sizeof(char));
printf("%d\n", sizeof(short));
printf("%d\n", sizeof(int));
printf("%d\n", sizeof(long));
printf("%d\n", sizeof(long long));
printf("%d\n", sizeof(float));
printf("%d\n", sizeof(double));
printf("%d\n", sizeof(long double));
return 0;
}
类型的使用
char ch = 'w';
int weight = 120;
int salary = 20000;
变量、常量
变量
定义变量的方法
int age = 150;
float weight = 45.5f;
char ch = 'w';
变量的分类
- 局部变量
- 全局变量
#include <stdio.h>
int global = 2019;//全局变量
int main()
{
int local = 2018;//局部变量
int global = 2020;//局部变量
printf