数据类型
基本类型整型
(unsigned)short 2字节
(unsigned)int 4字节
(unsigned)long 4字节
浮点型(实型)
单精度浮点型 float 4字节
双精度浮点型 double 8字节
字符型
(unsigned) char 1字节
构造类型
数组 结构体 共用体 枚举
指针类型
空类型
void
//没有系统时使用这种方式
void main()
{
//
}
//有系统的时候使用这种方式
int main()
{
return 0;//正确执行完毕的
return -1;//错误执行完毕的
}
——————————————————————————————————————————————————————————————————————————————————————————
1.常量和变量
常量:在程序运行期间内,其值不能够被改变的量整型: 123 -345 0
实型:3.14 0.618
字符型:'A' 'a'
字符串型: "hello world"
符号常量
#define 标识符 常量
注意: 符号常量的值不能被更改
变量:在程序运行期间内,其值能够被改变的量
变量代表内存中具有特定属性的一个存储单元,它用来存放这个存储单元的数据(变量的值),而这个值在程序运行期间内
可以被改变
变量名:实际上是一个以一个名字对应一个内存单元地址,在程序编译时有编译系统给每一个变量名分配一个相应的
存储单元。
定义一个变量的形式
类型名 变量名
类型可以是所有C合法的数据类型
变量名: 满足标识符的规定(只能是数字,子母,下划线,打头的不能是数字)
abc afioq7 _jop
&fh(
3fue_
所有的变量必须先定义,后使用
int a = 4;
int b = 5;
int result = a * b; // int result; result = a * b;
// No 66 是在定义的同时之间执行了初始化。
int i,j;
int num = i * j;
如果一个全局变量没有初始化,那么其值为0,而局部变量的值则是不确定的。整型常量
十进制 123
八进制 065
十六进制 0x12 0X34
整型数据在内存中是以二进制的形式存放的。
以补码形式存放
正数:原码就是补码
负数:绝对值的原码取反加一
编辑器为了区分有符号数还是无符号数,
signed 最高位为符号位 负数1 正数0
unsigned 所以位数都是数值位 全部都是正数
C语言 整型之间的赋值问题
长 -> 短 低字节直接拷贝,可能丢失数据
短 -> 长
unsigned 最低位直接拷贝,高位补0
signed 低字节直接拷贝,高位补符号位
****************浮点型在内存中的存放形式******************
123.0
1.23e2 <=> 1.23 * 10^2
规范化的指数形式:小数点前面只有一个且必须有一个不为0的有效数字
e前面必须要有数字,e后面的数字必须是整数
45.78
4.578 * 10 ^1
4.578e1
字符常量
'$' '#'
字符在内存中是以ASCII码形式存放的
char ch = '0'; //char ch = 48;
转义字符
\n 换行
\r 回车 光标回到本行行首
\t 横向跳格(8格)
\b 退格
\\ 反斜杠本身
\ddd 1-3 位 8进制数字
\xhh 1-2位 16进制数字
字符串常量
"hello world";
每一个字符串末尾都有一个"隐形"的字符串结束标志 '\0'
"abc"
'nihao' 字符串必须用双引号才行
--------------------------------------------------------------------------------
运算符及其表达式
什么是表达式?
在C语言中,表达式是用运算符连接操作数的式子
C语言的运算符
1.算术运算符+ - * / %(操作数必须是整型)
2.关系运算符
3.逻辑运算符
4.位运算符
5.赋值运算符 = 从右到左计算 优先级倒数第二
int a,b,c;
a = b = c = 5; 正确
5 = a = b = c; 错误
a = 3 + 5;
6. 条件运算符
7.逗号运算符
优先级倒数第一
表达式1,表达式2,…… 表达式n;//这一条语句合起来是逗号表达式,整个表达式的结果是最后一个表达式的结果
a = (15/3,15 * 20);// a = 15 * 20;
a = 15/3,15 * 20
8.指针运算符
9.求字节运算符
sizeof
int a;
sizeof(a); -> 4
sizeof(int) -> 4
sizeof(double) -> 8
sizeof(ch) -> 1
sizeof(short) -> 2
10. 分量运算符
p->next;
11.下标运算符
[]
12.强制类型转换运算符
(类型) 要转换的数据
(int)3.14 -> 3
(int) 3.14+ 5.46 -> 8.46
(int) (3.14+ 5.46) - > 8
与之相对的是自动类型转换(向高精度靠拢)
1 + 3.14 -> 1.0 + 3.14
13. 自增,自减运算符
i++ ++i
i-- --i;
int i = 3,m = 3;
int j = ++i;// i = i + 1; int j = i;
int n = m++;// int n = m; m = m + 1;
j = 4 n = 3