目录
1.C语言发展
C语言最初是为了UIX系统而创建的,C语言是人与计算机交流语言之一(例如:C++/java/pythen等)。
C语言的发展历程可以分为三个阶段。第一个阶段是C语言的早期发展阶段,从1972年到1977年,Dennis Ritchie和Ken Thompson在贝尔实验室开发了C语言的原型版本。第二个阶段是C语言的标准化阶段,从1983年到1989年,ANSI和ISO组织制定了C语言的标准,称为ANSIC和ISOC。第三个阶段是C语言的现代化阶段,从1990年代开始,C语言的标准不断更新和完善,以适应新的计算机技术和应用领域。
2.编译器运行过程
后缀为.c文件是C语言源程序文件;后缀为.cpp文件是用C++语言编写的源代码文件;后缀为.obj文件一种程序编译中间代码文件【汇编代码】;后缀为.exe文件是可执行程序文件【二进制命令】;后缀为.h文件是C语言头文件。
A.头文件的预编译,预处理,编译器在编译源代码时,会先编译头文件,保证每个头文件只被编译一次,在预处理阶段,编译器将c文件中引用的头文件中的内容全部写到c文件中。
B.词法和语法分析(查错)
C.编译(.obj文件【汇编代码】)转化为汇编码,这种文件称为目标文件。
D.链接(.exe文件【可执行程序,二进制命令】)将汇编代码转换为机器码,生成可执行文件。
常见的编译器:msvc,clang,gcc等。
集成开发环境(IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。所有具备这一特性的软件或者软件套(组)都可以叫集成开发环境。
常见的集成开发环境软件:IDE,VS code,VS【小白推荐】,Code Blocks,Devc++,Elion等
运行键:Ctrl键+F5 / Ctrl键+F5+Fn
3.C语言基础代码
C语言是由一个及以上的函数+主函数【main()函数】组成。
程序是从main()函数【有一且只有一个】开始执行的。
预编译指令:预编译是在源代码编译之前做一些文本性质的操作。
int【返回类型】main【函数名】(参数)
return 0【正常返回】与返回类型一一对应
每一条语句后加一个分号【;】
main()的写法:
A.void main()【古老的写法】
B.int main(void)【意思指无,没有参数】
C.main()【某些情况可以有参数,但有特殊用途】-----return 0
例如:int main(int argc /char*argv[ ])
printf-----输出【库函数】
scanf-----输入【库函数】
库函数是由基本函数组成的【C语言规定基本的函数功能,参数,返回值,由编译器厂商来实现】
print【打印】+f【formet----格式】=printf【按格式打印】
std【standard----标准】+i【include----包括】+o【utpet----输出相关操作或功能】=stdio.h
以下是简单的代码:
#include<stdio.h> //预编译处理
int main(void) //main()写法
{
int a;
int b;
int c;
c=a + b; //赋值运算
printf("%d",c);//输出C的值
}
4.C语言语句和结构:
A.空语句【;即是一个空语句】(需要,但不做事)
B.表达式语句【例如:赋值语句】
语句: C.函数调用语句【例如:printf("%d",arr);】
D.复合语句【多对{}组成的复杂语句】
E.控制语句
a.条件/分支语句:if,switch
控制语句(九种): b.循环语句:do while,while,for
c.转向语句:break,go to,continue,return
C语言是一门结构化程序设计语言。
顺序结构
结构: 选择结构
循环结构
5.C语言关键字:【程序员自定义时无法使用】
auto :声明自动变量
break:跳出当前循环
case:开关语句分支
char :声明字符型变量或函数返回值类型
const :声明只读变量
continue:结束当前循环,开始下一轮循环
default:开关语句中的“默认”分支
do :循环语句的循环体
double :声明双精度浮点型变量或函数返回值类型
else :条件语句否定分支(与 if 连用)
enum :声明枚举类型
extern:声明变量或函数是在其它文件或本文件的其他位置定义
float:声明浮点型变量或函数返回值类型
for:一种循环语句
goto:无条件跳转语句
if:条件语句
int: 声明整型变量或函数
long :声明长整型变量或函数返回值类型
register:声明寄存器变量
return :子程序返回语句(可以带参数,也可不带参数)
short :声明短整型变量或函数
signed:声明有符号类型变量或函数
sizeof:计算数据类型或变量长度(即所占字节数)
static :声明静态变量
struct:声明结构体类型
switch :用于开关语句
typedef:用以给数据类型取别名
unsigned:声明无符号类型变量或函数
union:声明共用体类型
void :声明函数无返回值或无参数,声明无类型指针
volatile:说明变量在程序执行中可被隐含地改变
while :循环语句的循环条件
6.C语言转义字符:
\? :在书写连续多个问号时使⽤,防⽌他们被解析成三字⺟词,在新的编译器上没法验证了。
\' :⽤于表⽰字符常量'
\" :⽤于表⽰⼀个字符串内部的双引号
\\ :⽤于表⽰⼀个反斜杠,防⽌它被解释为⼀个转义序列符。
\a :警报,这会使得终端发出警报声或出现闪烁,或者两者同时发⽣。
\b :退格键,光标回退⼀个字符,但不删除字符。
\f :换⻚符,光标移到下⼀⻚。在现代系统上,这已经反映不出来了,⾏为改成类似于 \v 。
\n :换⾏符。
\r :回⻋符,光标移到同⼀⾏的开头。
\t :制表符,光标移到下⼀个⽔平制表位,通常是下⼀个8的倍数。
\v :垂直分隔符,光标移到下⼀个垂直制表位,通常是下⼀⾏的同⼀列。
\0 :null 字符,代表没有内容, \0 就是 \ddd 这类转义字符的⼀种,⽤于字符串的结束标志,其
ASCII码值是0。
\c :打印ASKII值所表示的字符【先转化为十进制数,再输出对应值】(值不能超过256)
\0+arr:八进制数字,arr表示数字【分权计算值】(最大值3位数)
\x+arr:十六进制数字,arr表示数字【分权计算值】(最大值2位数)
7.ASKII码表
注意事项:
- 字符A~Z的ASCII码值从65~90
- 字符a~z的ASCII码值从97~122
- 对应的⼤⼩写字符(a和A)的ASCII码值的差值是32
- 数字字符0~9的ASCII码值从48~57
- 换⾏ \n 的ASCII值是:10 在这些字符中ASCII码值从0~31 这32个字符是不可打印字符,⽆法打印在屏幕上观察