2.c基础
1.基本数据类型
1)、整型数据类型
整型数据编码
原码:指将一个数值的绝对值化为二进制数,再补齐或截取相应字节后,将最高位用来表示符号,正数为0,负数为1形成的二进制编码。
例:10的双字节原码:0000 0000 0000 1010
-10的双字节原码:1000 0000 0000 1010
反码:正数与原码相同,负数的反码是原码除符号位外取反形成的二进制编码。 -10的双字节反码:1111 1111 1111 0101
补码:正数与原码相同,负数的补码为反码+1形成的二进制编码。
-10的双字节补码:1111 1111 1111 0110
2、常量
整型常量:
十进制整型常量:0—9
八进制整型常量:以数字0开头,0—7
十六进制整型常量:以数字0和字母X(x)开头,由0—9 A—F
字符常量:用一对单引号括起来的一个字符 ‘a’
转义字符
ASCII
\n
回车换行
10
\t
制表符
9
\b
退格
8
\r
回车
13
\a
响铃
7
\’
单引号
39
\’’
双引号
34
\f
换页
12
\\
反斜线
92
\ddd
1-3位八进制数所代表的字符
\xhh
1-2位十六进制数所代表的字符
ASCII:为了能够以二进制的形式存储字符,就给每个字符对应的找一个数字,这个数字就代表这个字符。
65---90 A---Z
97---122 a---z
48---57 0---9
实型常量: 小数形式: 12.32
指数形式:2.5E+5或2.5E5=2.5*10的5次方
-2.5E-5=-2.5*10的-5次方
字符串常量 “China”
“a”包括a及‘\0’占两个字节
符号常量 #define 符号常量名 常量
#define PI 3.14
自动类型转换
1、出现不同字节大小的变量类型进行运算的时候,将占内存空间小的数据,转化为占内存空间大的数据,最终结果就是占内存空间大的数据类型。
2、出现不同类型运算,但是两种类型占空间大小一致,将表示精度小的数据类型,转化为表示精度大的数据类型。
强制类型转换
手动进行,这种方式有可能损失数据。
(int)float 小数部分直接丢弃,不进行四舍五入
3.变量
变量是指在程序运行时其值可以改变的量.
定义:为变量分配存储空间,同时指明变量的类型和名字,在使用一个变量之前一定要先定义它 int a
设定变量的值 定义的时候初始化变量 int a=1;
如果一个单词不足以表示全部意思,可以使用多个单词。如下:
匈牙利命名法 current_age_t
驼峰式命名法 currentAgeQwe
变量最好在声明的时候初始化,初始化的值最好有意义
变量的声明
它主要告诉编译器变量的类型和名字,在使用之前知道有这个变量存在,它不分配空间。
注:在C语言中,变量有且只有一次定义,但是声明可以有多次,如果没有定义,那么第一次的声明语句就是定义。
变量类型补遗
Long int 64位:8个字节
32位:4个字节
Short int 32位/64位:2个字节
Unsigned 修饰符
无符号类型,用unsigned修饰过的变量,只能有正数部分,没有负数部分,表示范围将会扩大,二进制上第一位符号位,也会变成有效的位,无符号类型,输出时使用的是%u
4.运算符
1)算术运算符 +、-、*、/
2) 自增/自减运算符 ++、- -
3) 赋值运算符 =、+=、-=、*=、/=、%=
4)关系运算符 <、>、==、<=、>=、!=
5)逻辑运算符 !、&&、||
6)位运算符 <<、>>、-、|、^、&
7)条件运算符 ? :
8)逗号运算符 ,
9)指针运算符 * &
10)求字节数运算符 sizeof()
11)强制类型转换运算符 (类型)
12)分量运算符 . ->
13) 下标运算符 []
14)其他 例:函数调用运算符
优先级
伪运算符最高,单目运算符总是高于双目运算符
算术运算符>位运算符>逻辑运算符
同一级运算符看计算方向,自右向左计算的只有两种:单目运算符、赋值运算符
逗号运算符
一般形式:表达1,表达2,…,表达式N
从左到右,最后求解的表达式的值即整个逗号表达式的值。
位运算符
& 按位与 |按位或 ^
<<二进制左移运算符 >>二进制右移运算符
按位与:清0作用,保留特定位
5.注释的方法:
1)//单行注释
2)/*
多行注释(不允许嵌套)
*/
3) #if
多行注释,允许嵌套
#endif