C语⾔常⻅概念

  • C语⾔是什么?
    • C语⾔的历史和辉煌
    • VS项⽬和源⽂件、头⽂件介绍
  • 第⼀个C语⾔程序
    • main函数
    • printf和库函数
    • 关键字介绍
    • 字符和ASCII编码
    • 字符串和\0
    • 转义字符
    • 语句和语句分类
      • C语⾔的代码是由⼀条⼀条的语句构成的,C语⾔中的语句可为以下五类:
        • • 空语句
        • • 表达式语句
        • • 函数调⽤语句
        • • 复合语句
        • • 控制语句

C语⾔是什么?

⼈和⼈交流使⽤的是⾃然语⾔,如:汉语、英语、⽇语
那⼈和计算机是怎么交流的呢?使⽤计算机语⾔
⽬前已知已经有上千种计算机语⾔,⼈们是通过计算机语⾔写的程序,给计算机下达指令,让计算机
⼯作的。
C语⾔就是众多计算机语⾔中的⼀种,当然C++/Java/Go/Python都是计算机语⾔。

C语⾔的历史和辉煌

C 语⾔最初是作为 Unix 系统的开发⼯具⽽发明的。

VS项⽬和源⽂件、头⽂件介绍

在VS上写代码,我们是需要创建项⽬的,直接新建项⽬就可以了。
在项⽬中就可以添加源⽂件和头⽂件。
C语⾔把 .c 为后缀的⽂件称为源⽂件,把 .h 为后缀的⽂件称为头⽂件。

第⼀个C语⾔程序

#includeint main(){printf("Hello World!\n");//输出Hello World!return 0;}

在vs2022运行代码用快捷键ctrl+F5

main函数

• main函数是程序的⼊⼝
• main函数有且仅有⼀个
• 即使⼀个项⽬中有多个.c⽂件,但是只能有⼀个main函数(因为程序的⼊⼝只能有⼀个)
main函数写的格式有很多种

#includevoid main(){}

这种是不推荐的

#includevoid main(void){}

这种也是不推荐的

#includeint main(void){return 0;}

这种相比前面两种优点会好一点,但还是不太推荐

#includeint main(){return 0;}

这种是我推荐的

printf和库函数

#includeint main(){printf("Hello World!\n");//输出Hello World!return 0;}

代码中使⽤了 printf 函数,实现了在屏幕上的信息的打印。
printf 是⼀个库函数,它的功能是在标准输出设备(⼀般指屏
幕)上进⾏信息的打印。上⾯的代码是使⽤ printf 函数打印字符串。只要把想要打印的⼀串字符放
在双引号中并传递给printf函数就可以打印。
当然也可以打印其他类型的数据,⽐如:

#includeint main(){printf("Hello World!\n");//这是打印字符串printf("%d",100);//%d是以整形形式打印,即打印出100printf("%c",'a');//%c是以字符形式打印,即打印出字符aprintf("%lf",1.2);//%lf是以双精度形式打印,默认是打印小数点后面15位printf("%f",2.4);//%f是以单精度形式打印,默认打印小数点后面六位return 0;}

printf函数需要包含头文件stdio.h
具体的包含头文件语句为:#include
那什么是库函数呢?
为了不再重复实现常⻅的代码,让程序员提升开发效率,C语⾔标准规定了⼀组函数,这些函数再由不
同的编译器⼚商根据标准进⾏实现,提供给程序员使⽤。这些函数组成了⼀个函数库,被称为标准
库,这些函数也被称为库函数。在这个基础上⼀些编译器⼚商可能会额外扩展提供部分函数(这些函
数其他编译器不⼀定⽀持)。
⼀个系列的库函数⼀般会声明在同⼀个头⽂件中,所以库函数的使⽤,要包含对应的头⽂件。

关键字介绍

C语⾔中有⼀批保留的名字的符号,这些符号被称为保留字或者关键
字。## 字符和ASCII编码
注意:
1.关键字不能自己创建
2.创建的标识符不能与关键字同名
c语言关键字有32个
auto double int struct break else long switch

case enum register typedef char extern return union

const float short unsigned continue for signed void

default goto sizeof volatile do if while static
可分为两大类
1.数据类型关键字
2.流程控制关键字

字符和ASCII编码

字符顾名思义就是我们在键盘上打出的每一个符号,如:a,q,@,#等,这些符号都被称为字符。字符跟ASCII编码有着重要的联系。
数据在计算机存储的形式是以二进制形式进行存储,那么字符在计算机中应该以什么样的二进制形式存储呢?
美国国家标准学会(ANSI)出台了⼀个标准 ASCII 编码,C语⾔中的字符就遵循了 ASCII 编码的⽅式。

字符串和\0

c语言如何表示字符串呢?
使⽤双引号括起来的⼀串字符就被称为字符串,如:“abcdef”,就是⼀个
字符串。
如何在屏幕上打印呢?

#includeint main(){printf("%s\n","Hello World!");//输出Hello World!return 0;}

除了这一种办法还可以参考上面printf那里。

创建字符串时其实末尾还隐藏了一个\0,\0在ASCII码的值为0。
那么\0对于字符串来说有多重要呢?
\0是字符串结束标志
使用printf和strlen求字符串长度的时候都是遇到\0就停止了
所以说\0很重要。我们不妨来验证一下:

char arr1[]={'a','b','c'};char arr2[]="abc";//分别打印printf("%s",arr1);printf("%s",arr2);

第一种创建abc的时候没有\0就出现了随机值,原因是访问到c时不知道后面访问多少才能访问到\0结束,所以就会出现随机值。
而第二种创建的时候abc后面有\0,以%s形式打印遇到\0就结束了,就能正常打印出字符串abc。

转义字符

转义字符顾名思义:转变原来的意思的字符。
类似上面的\n的意思就是换行。如果没有加\就会变成正常的n打印输出。
这就是转义字符的问题, \n 是⼀个转义字符表⽰换⾏的意思,我们可以简单的理解为 \ 让 n 的意思
发⽣了转变, n 本来是⼀个普通的字符,被 \ 转义为换⾏的意思。
除此之外还有很多的转义字符
C语⾔中像这样的转义字符还有⼀些,具体如下:
• ” /> • \\ :⽤于表⽰⼀个反斜杠,防⽌它被解释为⼀个转义序列符。
• \a :警报,这会使得终端发出警报声或出现闪烁,或者两者同时发⽣。
• \b :退格键,光标回退⼀个字符,但不删除字符。
• \f :换⻚符,光标移到下⼀⻚。在现代系统上,这已经反映不出来了,⾏为改成类似于 \v 。
• \n :换⾏符。
• \r :回⻋符,光标移到同⼀⾏的开头。
• \t :制表符,光标移到下⼀个⽔平制表位,通常是下⼀个8的倍数。
• \v :垂直分隔符,光标移到下⼀个垂直制表位,通常是下⼀⾏的同⼀列。
下⾯2种转义字符可以理解为:字符的8进制或者16进制表⽰形式
• \ddd :d d d表⽰1~3个⼋进制的数字。 如: \130 表⽰字符X
• \xdd :d d表⽰2个⼗六进制数字。 如: \x30 表⽰字符0
\0 :null 字符,代表没有内容, \0 就是 \ddd 这类转义字符的⼀种,⽤于字符串的结束标志,其ASCII码值是0.

语句和语句分类

C语⾔的代码是由⼀条⼀条的语句构成的,C语⾔中的语句可为以下五类:

• 空语句
#include int main(){ ;//空语句 return 0;}
• 表达式语句
#include int main(){int a = 20;int b = 40;int c = a+b;//表达式语句 return 0;}
• 函数调⽤语句
#include int Add(int x, int y){ return x+y;}int main(){ printf("hehe\n");//函数调⽤语句 int ret = Add(2, 3);//函数调⽤语句  return 0;}
• 复合语句
#include int main(){int arr[10] = { 0 };int i = 0;for (i = 0; i < 10; i++) {arr[i] = i;}for (i = 0; i < 10; i++) {printf("%d\n", arr[i]);}return 0;}
• 控制语句

控制语句⽤于控制程序的执⾏流程,以实现程序的各种结构⽅式(C语⾔⽀持三种结构:顺序结构、选择结构、循环结构)
可分成以下三类:

  1. 条件判断语句也叫分⽀语句:if语句、switch语句;
  2. 循环执⾏语句:do while语句、while语句、for语句;
  3. 转向语句:break语句、goto语句、continue语句、return语句。