版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33487044/article/details/82155977
01 基本数据类型
变量名
- 变量名由字母和数字组成,但第一个字符必须是字母。
- 下划线被认为是字母。
- 大小写字母是有区别的,一般变量名用小写字母,符号常量名全部使用小写字母。
- 关键字等保留字不能用于变量名。
数据类型及长度
类型 | 长度(字节) | 取值范围 |
---|---|---|
char | 1 | -128 ~ 127 |
int | 4 | -2147483648 ~ 2147483647 |
short | 2 | -32768 ~ 32767 |
float | 4 | |
double | 8 | |
long | 8 | |
unsigned char | 1 | 0 ~ 255 |
unsigned int | 4 | 0 ~ 4294967295 |
unsigned short | 2 | 0 ~ 65535 |
_Bool | 1 | 1表示true,0表示false |
* 可移植类型
C99 新增了两个头文件stdint.h和inttypes.h,以确保C语言的类 型在各系统中的功能相同。C语言为现有类型创建了更多类型名。这些新的类型名定义在stdint.h头 文件中。例如,int32_t表示32位的有符号整数类型。在使用32位int的系统 中,头文件会把int32_t作为int的别名。不同的系统也可以定义相同的类型 名。例如,int为16位、long为32位的系统会把int32_t作为long的别名。然 后,使用int32_t类型编写程序,并包含stdint.h头文件时,编译器会把int或 long替换成与当前系统匹配的类型。
- 复数和虚数类型
C语言有3种复数类型:float_Complex、double_Complex和 long double _Complex。例如,float _Complex类型的变量应包含两个float类型 的值,分别表示复数的实部和虚部。类似地, C语言的3种虚数类型是float _Imaginary、double _Imaginary和long double _Imaginary。
常量
- int: 12345
- long: 123456L/123456l
- unsigned long : 12345UL/12345ul
- float: 123.4f、1e-5
- double: 没有后缀的浮点型常量,如1245.45
- char: ‘x’,一个字符常量是一个整数
- 十六进制: 前缀0x或0X开头,如0x78
- 八进制: 前缀0开头,如012
- 字符常量:”I am a String”
- 枚举常量: enum boolean {NO, YES}
- 常量表达式: #define MAXLINE 1000
变量和声明
int lower, higher, step;
char c, line[100];
int i = 10;
char esc = 'c';
const double x = 2.34567; //限定的变量的值不能修改
const char msg[] = "warning"; //限定的数组所有元素的值都不能修改
变量的本质:
- 变量是一段实际连续存储空间的别名。
- 程序中通过变量来申请并命名存储空间。
- 通过变量的名可以使用存储空间。
算术运算符
运算符 | 作用 | 示例 | 说明 |
---|---|---|---|
+ | 加 | 1 + 2 = 3 | |
- | 减 | 2 - 1 = 1 | |
* | 乘 | 2 * 8 = 16 | |
/ | 除/取整 | 8 / 2 = 4, 8 / 5 = 1 | |
% | 取模/取余 | 8 / 2 = 0, 8 % 5 = 3 | 不能用于float和double类型 |
关系运算符和逻辑运算符
运算符 | 作用 |
---|---|
> | 大于 |
= |
大于等于 |
< | 小于 |
<= | 小于等于 |
== | 等于 |
!= | 不等于 |
! | 逻辑非运算符 |
&& | 逻辑与运算符 |
` |
类型转换
- 如果其中一个操作数的类型为 long double,则另一个操作数转换为 long double 类型。
- 如果其中一个操作数的类型为 double,则另一个操作数转换为 double 类型。
- 如果其中一个操作数的类型为 float,则另一个操作数转换为 float 类型。
- 将 char 和 short 类型的操作数转换为 int 类型。
- 如果其中一个操作数的类型为 long,则另一个操作数转换为 long 类型。
自增运算符和自减运算符
运算符 | 作用 |
---|---|
n++ | 先使用n,再将n的值递增1 |
++n | 先将n的值递增1,再使用n |
n– | 先使用n,再将n的值递减1 |
–n | 先将n的值递减1,再使用n |
int n = 5;
int x,y,z,w;
x = n++; //5
n = 5;
y = ++n; //6
n = 5;
z = n--; //5
n = 5;
w = --n; //4
按位运算符
C 语言提供了 6 个位操作运算符。这些运算符只能作用于整形操作数,即只能作用于带符号或无符号的 char、short、int、long 类型。
运算符 | 含义 |
---|---|
& | 按位与 |
` | ` |
^ | 按位异或 |
<< | 左移 |
> |
右移 |
~ | 按位求反 |
赋值运算符
运算符 | |
---|---|
i += 2 | i = i + 2 |
-= | |
*= | |
/= | |
%= | |
<<= | |
= |
|
&= | |
^= | |
~= |
条件表达式
if - else
if (a > b)
z = a;
else
z = b;
三元运算符
z = (a > b) ? a : b