1、C特点及与Java区别

1.1、C特点

面向过程
一般用于嵌入式开发、编写最底层的程序、操作系统
可以直接操作内存
可以封装动态库
不容易跨平台
有指针
可以直接操作串口
线程更加灵活
和硬件打交道速度是最快的

1.2、和Java区别

C++是C的增强版,增加了一些新的特性,如面向对象 C#跟 C/C++ 完全不同,是微软开发的语言,用于.net,
从时间先后上说,他们之间最早出现的是C,然后是c++,最后是c#。c++是为了解决软件危机而引入面向对象,
c#为了实现平台统一和java争夺市场下的产物

类别 C Java
运行方式上 面向过程 面向对象
用途 嵌入式、操作系统 应用软件、web
语法不同 内存、指针、动态库 jar包
跨平台 不支持(c#支持) 支持

2、关键字

2.1、数据类型相关的关键字

定义变量的方式:类型 变量名
变量名属于标识符,标识符命名规则:①只能以数字、字母、下划线命名、②首字母不能是数字,③不能与关键字相同,⑥严格区分大小写
1、char
字符型,占一个字节
有符号:-27-27-1
无符号:0-28-1<br />2、short<br />短整型,占2个字节<br />有符号:-215-215-1<br />无符号:0-216-1
3、int
整型,在32位系统以上占4个字节
有符号:-231-231-1
无符号:0-2`32-1
4、long
长整型,在32位系统占4个字节,64位系统占8个字节
5、float
单浮点型,占4个字节
6、double
双浮点型,占8个字节
7、union
与共同体(联合体)相关的关键字
8、enum
与枚举相关关键字
9、signed
代表是有符号的意思,默认省略代表有符号的
10、unsigned
代表是无符号类型,只能保存正数和0
11、void
代表函数没有返回值,不能定义变量

2.2、存储相关关键字

1、register
image.png
2、static
修饰全局变量、局部变量、函数
修饰的变量保存在内存的静态区空间中

3、const
image.png
4、auto
基本不用
5、extern
一般用于函数和全局变量的声明

2.3、控制语句相关的关键字

1、条件控制语句
if else
swtch case default
2、循环控制语句
for
while
do
goto
3、辅助控制语句
break continue

2.4、其他关键字

1、sizeof
使用来测变量、数组的占用存储空间的大小(字节数)
2、typedef
image.png
重命名相关的关键字,给一个已有的类型,重新起个类型名

  1. typedef short int INT16

3、volatile
image.png

3、数据类型

3.1、基本类型

char short int long flout(默认保存小数点后6位,并且可以四舍五入) double
输出int类型的值%d
输出字符用%c
输出long用%ld
输出float用%f
输出double用%lf

3.2、构造类型

由如干戈相同或不同类型数据构成的集合

3.2.1、常量

常量:程序运行过程中,值不可以改变的量
image.png
ASCll码表,计算机只能识别二进制数,也就是数字,对于非数值型数据,如果要使用,就需要将其用一个数值型数据进行标识
小写a-z:65-90
大写A-Z:87-122
%d输出字符型实际就是输出ASCll值

3.2.2、变量

其值可以改变的量,定义的时候满足标识符规则,:①只能以数字、字母、下划线命名、②首字母不能是数字,③不能与关键字相同,⑥严格区分大小写
定义方式:
存储类型 数据类型 变量名 = 变量或常量

3.2.3、常量和变量按照类型区分

1、整型数据
整型常量(按进制分)
十进制:以正常数字1-9开头,如457-789
八进制:以数字0开头,如0123
十六进制:以0x开头,如0x1e
整型变量:
image.png

2、实型数据(浮点型)
image.png
3、字符型
image.png
4、字符串常量
image.png

3.2.4、格式化输出字符

image.png
image.png
image.png
image.png
image.png
image.png
image.png
格式化输出字符特殊使用
image.png
image.png
image.png
image.png

4、类型转换

image.png

4.1、自动转换原则

image.png
image.png
image.png
image.png
image.png
image.png
image.png
结果:a+b>0
image.png
image.png
image.png
image.png
image.png

4.2、强制转换

image.png

image.png

5、运算符

5.1、运算符分类

1、双目运算符:操作数有2个
如a+b
2、单目运算符
a++
3、三目运算符
a>0 ? b : c

5.2、算术运算符

image.png
意:只有整数才能够取余%

image.png
image.png

5.3、关系运算符

一般用于判断,
image.png
image.png
关系运算符连接的表达式,只有真和假,一般返回结果使用int保存,非0即为真

5.4、逻辑运算符

image.png
image.png
image.png
image.png

5.5、位运算符

image.png
image.png
5、位运算
右移3位,高位就空出3个补上,负数高位补1,低位溢出,正数高位补0,低位溢出,默认负数用的逻辑右移

左移,高位溢出,低位补0

  1. 负数
  2. 10101101
  3. 11110101
  4. 正数
  5. 01011010
  6. 00001011

image.pngimage.png

5.6、条件运算符

image.png

5.7、逗号运算符

image.png
image.png
image.png

如果把括号去掉
image.png

逗号运算符,必须要加括号,如果不加,则会歧义

5.8、自增自减运算符

5.8.1、++/—放在变量的后面

image.png
结果a=101,b=100

5.8.2、++/—放在变量的前面

image.png
结果:a=101,b=101

5.9、运算符优先级

image.pngimage.png
注意:第二个级别的,从右到左

6、控制语句

6.1、选择控制语句

6.1.1、if语句

image.png
image.png

6.1.2、switch语句

image.png
image.png

6.2、循环控制语句

6.2.1、for循环

image.png

6.2.2、while循环

image.png
image.png

6.2.3、goto循环

实现在一个函数里面实现代码的跳转

image.png
goto实现循环
image.png

注意:在平时编写代码时,尽量少使用goto,会使得代码逻辑混乱,可读性差