一、C语言是什么
C语言是一种较早的程序设计语言,诞生于1972年的贝尔实验室。1972 年,Dennis Ritchie 设计了C语言,它继承了B语言的许多思想,并加入了数据类型的概念及其他特性。 尽管C 语言是与 UNIX 操作系统一起被开发出来的,但它不只支持UNIX。 [11]C是一种通用(广泛可用)的编程语言。
程序设计语言实与编译器是一体的,C编译器有著名的GCC(GNU Compiler Collection)等。
广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。
最新的C语言标准是C23。
二、C语言的历史和辉煌
C语言最初是作为Unix系统的开发工具而发明的
三、VS2022的优缺点
优点:
- VS2022是一个主流的集成开发环境,企业中使用较为普遍
- VS2022包含了:编辑器+编译器+调试器,功能强大
- 直接安装即可使用,基本不用额外配置环境,上手容易
- 默认界面是中文的,对初学者友好
缺点:
- 功能丰富,安装包大,占用空间内存较多
四、VS项目和源文件、头文件介绍
1.项目的创建
项目创建成功!
2.文件的创建
xxxx.h 为头文件
xxxx.c 为源文件
右键源文件,点击添加,点击新建项或者使用ctrl+shift+a快捷键
创建成功
五、第一个C语言程序
在vs2022上面运行代码的快捷键为ctrl+f5
六、main 函数
main函数是程序的入口,无论c语言程序有多少行代码,都会从main函数开始执行,main函数也被叫做:主函数 。main前面的int表示main函数执行结束的时候返回一个整数类型的值,所以在mian函数的最后写ruturn 0;正好前后呼应。
- main函数是程序的入口
- main函数有且仅有一个
- 即使一个项目有多个.c文件,但是只能有一个main函数(因为程序的入口只能有一个)
第一次写代码会犯的常见错误总结:
- main写成mian
- main后面忘加()
- 代码中使用中文符号,比如将;写成; ,写成,
- 一条语句结束之后忘记加分号 ;
七、printf和库函数
1.printf
//printf 是函数-c语言的标准库中提供的现成的函数
//功能:在屏幕上打印信息
//printf format -按照格式来打印信息
//双引号括起来的一串字符hello c\n为字符串,其中\n表示换行
int main()
{
printf("hello c\n");
printf("haha\n");
printf("HEIHEI\n");
return 0;
}
//%d 表示打印整数
//%c 表示打印字符
//%f 表示打印小数 默认打印小数点后六位
以上三种均为占位符,会被后边的值替换
int main()
{
printf("%d\n", 100);
printf("%c\n", 'c'); //单引号括起来的叫字符 双引号括起来的叫字符串
printf("%f", 3.4);
return 0;
}
#include<stdio.h>
std - standard -标准
i - input - 输入
o - output - 输出
注意:和输入输出相关的功能都应该头文件
2.库函数
C标准库函数或简单的C库函数是C语言编程中的内置函数。
这些函数的原型和数据定义位于各自的头文件中。要使用这些函数,我们需要在程序中包含头文件。例如,
如果要使用printf()函数,则应包含头文件<stdio.h>。
示例
#include <stdio.h> int main() { printf("Catch me if you can."); }
如果不包括stdio.h头文件,尝试使用printf()时,则会出现错误。
八、关键字介绍
C语言中有一批保留的名字的符号,比如:int、if、return、这些符号被称为保留字或者关键字。
- 关键字都有特殊的意义,是保留给c语言使用的
- 程序员自己在创建标识符的时候是不能和关键字重复的
- 关键字也是不能自己创建的。
常见的关键字有:
详细可访问查看https://zh.cppreference.com/w/c/keyword
九、字符和ASCII编码
在键盘上可以敲出各种字符,如:a,q,@,#等,这些符号都被称为字符,C语⾔中字符是⽤单引号 括起来的,如:'a','b','@'。 我们知道在计算机中所有的数据都是以⼆进制的形式存储的,那这些字符在内存中分别以什么样的⼆ 进制存储的呢?如果我们每个⼈⾃⼰给这些字符中的每个字符编⼀个⼆进制序列,这个叫做编码,为 了⽅便⼤家相互通信,不造成混乱,后来美国国家标准学会(ANSI)出台了⼀个标准ASCII编码,C 语⾔中的字符就遵循了ASCII编码的⽅式。
参考:https://zh.cppreference.com/w/cpp/language/ascii
- 字符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个字符是不可打印字符,⽆法打印在屏幕上观察
例:
十、字符串和\0
字符串的打印格式可以使⽤%s来指定,也可以直接打印如下:
C语⾔字符串中⼀个特殊的知识,就是在字符串的末尾隐藏放着⼀个\0字符,这个\0字符是字符串的结束标志。
对于字符串"abcdef",我们实际上看到了6个字符:a,b,c,d,e,f,但是实际上在末尾还隐藏⼀个\0的转义字符,\0是字符串的结束标志。所以我们在使⽤库函数printf()打印字符串或者strlen()计算字符串⻓度的时候,遇到\0的时候就⾃动停⽌了。
十一、转义字符
转义字符顾名思义:转变原来的意思的字符。
\n表示换行打印 如下:
n本来是⼀个普通的字符,被\转义为换⾏的意思。
C语⾔中像这样的转义字符还有⼀些,具体如下:
•\?:在书写连续多个问号时使⽤,防⽌他们被解析成三字⺟词,在新的编译器上没法验证了。
•\':⽤于表⽰字符常量'
•\":⽤于表⽰⼀个字符串内部的双引号
•\\:⽤于表⽰⼀个反斜杠,防⽌它被解释为⼀个转义序列符。
•\a:警报,这会使得终端发出警报声或出现闪烁,或者两者同时发⽣。
•\b:退格键,光标回退⼀个字符,但不删除字符。
•\f:换⻚符,光标移到下⼀⻚。在现代系统上,这已经反映不出来了,⾏为改成类似于\v。•\n:换⾏符。
•\r:回⻋符,光标移到同⼀⾏的开头。
•\t:制表符,光标移到下⼀个⽔平制表位,通常是下⼀个4/8的倍数。
•\v:垂直分隔符,光标移到下⼀个垂直制表位,通常是下⼀⾏的同⼀列。
下⾯2种转义字符可以理解为:字符的8进制或者16进制表⽰形式
•\ddd:ddd表⽰1~3个⼋进制的数字。 如:\130表⽰字符X
•\xdd:dd表⽰2个⼗六进制数字。 如:\x30表⽰字符0
\0:null字符,代表没有内容,\0就是\ddd这类转义字符的⼀种,⽤于字符串的结束标志,其ASCII码值是0.
十二、语句和语句分类
C语⾔的代码是由⼀条⼀条的语句构成的,C语⾔中的语句可为以下五类:
- 空语句
- 表达式语句
- 函数调⽤语句
- 复合语句
- 控制语句