yunfeitian 2020-06-18
在计算机中任何数据都呈现为变量和常量两种形式。
在C语言中,整型变量有6种类型:基本整型,无符号基本整型,短整型,无符号短整型,长整型,无符号长整型
下图列出了ANSI标准定义的各种整型变量所分配的内存字节数,以及表示范围
实型常量也叫做实数或浮点数。在C中,实数只采用十进制,他有两种形式
小数形式
由数值0~9和小数组成,如0.0,25.0,3.1415926,-235.123均为合法的实数(必须要有小数点)
指数形式
由十进制数加阶码标志“e”或“E”及阶码(只能为整数,可以带符号)组成。如:
2.1E5(等于2.1x10的五次方)
3.7E-2(等于3.7x10的负二次方)
实型变量分为单精度(float),双精度(double),长双精度(long double)
实型变量定义的格式和书写规则与整型相同,例如:
float x,y; /*单精度*/ double a,b,c; /*双精度*/ long double m,n; /*长双精度*/
由于实型变量是由有限的存储单元组成的,因此能提供的有效数字是有限的,有时存在误差。
字符型数据存储的是字符的ASCLL码值,一个字符占一个字节,即8个bit.
例如:字符x的ASCLL码值为120,字符y的值为121
a=‘x‘;
b=‘y‘;
那么实际上在a,b这两个变量名的内存空间里面存放120和121的二进制ASCII码值
a:
b:
所以我们完全可以把字符看成是整型,在输出时可以把字符型变量按整型格式输出,也可以把整型量按字符格式输出
例如给a,b分别赋予120,121俩个值以字符型和整型分别输出
#include <stdio.h> main() { char a,b; a=120; b=121; printf("%c,%c\n",a,b); printf("%d,%d\n",a,b); }
输出结果为
[ ~]$ vim test.c [ ~]$ gcc test.c -o test [ ~]$ ./test x,y 120,121 [ ~]$
字符串常量就是被双括号引起来的字符序列。例如:"china","C","#121212"等都是合法的字符串常量
值得注意的是,字符串常量和字符常量是不一样的
例如字符串"hello"在内存中占用的字节为
实际上是这样一串数
‘a‘与"a"虽然看起来和输出都是一样的,都是他们在内存中的形式却是不同的
‘a‘在内存中只占一个字节
而"a"在内存中多了一个结束符号,所以有两个字节
转义字符是一种特殊的字符常量,它以“\”开头,后面跟字符。转义字符有具体的含义,不具有字符本身的含义。转义字符一般用来表示普通字符不便于表示的控制代码。C语言常见的转义字符一般有:
转义字符 | 含义 | ASCII码 |
---|---|---|
\n | 回车换行 | 10 |
\t | 横向跳到下一个制表位置 | 9 |
\b | 退格 | 8 |
\r | 回车 | 13 |
\f | 走纸换页 | 12 |
\ | 反斜线符“\” | 92 |
‘ | 单引号 | 39 |
" | 双引号 | 34 |
\a | 响铃 | 7 |
\ddd | 1~3位八进制数所代表的字符 | |
\xhh | 1~2位十六进制所代表的字符 |
不负责任的讲,C语言字符集里的任何字符都可以用转义字符来表示,例如: