C语言:变量的定义、存储、打印
一、C语言变量
(1)、定义格式:<存储类型> <变量类型> 变量名;
存储类型(6个):
auto register extern static volatile const
一般可以先不用管存储类型,直接: <变量类型> 变量名;
char a;
int tt;
注:(1)定义变量时,变量名必须只能以数字,字母下划线组成,且不能以数字开头。
例如:1ttw(×) ww%(×)
(2)、变量名不能与关键字重复。C语言中有32个关键字。
6个存储类型: auto register extern static volatile const
12个变量类型: void char short int long struct union enum float double signed unsigned
1个类型重定义: typedef
1个 sizeof 求类型大小的关键字
12个控制语句: if else switch case do while goto for return continue break default
注:在C语言中有32个关键字中,没有define。
(3)变量名取名字时,尽量要做到见名知意。
(4)C语言中了,变量名区分大小写。
二、变量存储数据的能力:
char (8bit)(-128-----127)
0111 1111(2^7-1=127)
1000 0000(-128)
问题:为什么最小值不是:1111 1111呢?
答案:因为1111 1111的值是-127,没有1000 0000的-128小。
1 0000000
| |
符号位 数据位
1:代表负数
0:代表正数
unsigned char (0 ---255)
0000 0000 都是数据位
1111 1111
short:(2^15-1 ------- -(2^15))
unsigned short :(0---65535)
int:(2^31-1 ------ -(2^31))
三、变量的存储的方式
在Linux操作系统中,数据是以补码的形式存放的。
char类型数据:
源码: 1000 0101(源码)
反码:(对源码的除了符号位之外,其它位取反) 1111 1010(反码)
补码:(在反码的基础上加1) 1111 1011(补码)
注:正数的源码,反码,补码是一样的。
char类型:
128 =
1000 0000(源码)
1111 1111(反码)
-----------------溢出---------------------------
1000 0000(补码)(-128)
即:补码转源码:对补码的除了符号位之外,其它位取反,再加1
四、数据打印的格式:
%c 打印的字符
%d 打印的整数
%ld 打印长整型
%lld 打印长长整形
%f 打印实型(默认打印小数点后6位(也可通过 .4%f 来限制打印的小数点后的位数))
%g 打印实型小数点后的(最多5位)有效数据的位
%Lf 打印long double类型的
%s 打印字符串类型
对于short类型,没有规定的打印类型
%o 以八进制打印
%#o 以八进制打印(并显示八进制的前缀)
%x 以十六进制打印
%#x 以十六进制打印(并显示十六进制的前缀)
%p 打印地址(一般与 & 取地址符 配合使用)

浙公网安备 33010602011771号