c数据类型

一 什么是数据类型?

数据类型在数据结构中的定义是一个值的集合以及定义在这个值集上的一组操作

这个概念看得我晕晕的,根据我的理解,这里的值是指内存中的一块大小,值的集合就是由一类固定大小的内存块构成的集合。

(注:对于刚入门的人来说,可能对于内存这个概念不是很理解。简单点来说,内存就是一块存储区域,而我们所写的程序最终是要在这块区域中运行的,程序运行产生的动作无非就是对数据的存储和操作。这里我们需要了解的是:内存的存储单元都是有相应地址的(编码地址),通常叫做“编址”。“编址”存储对于我们理解数据及其操作有很大帮助,特别是后面指针这一块,如果能从内存方面来理解,指针的知识就不觉得难了!对于刚入门的人来说,以后学习了编译原理和操作系统可能就会深有体会了!)

二 C语言的基本数据类型

C语言的基本数据类型有:short  int  long   char   float   double 六种基本数据类型。

三 变量

变量是用来存储值的,变量可以通过变量名访问。在c语言中,变量是可变的

变量的命名数字、字母、下划线,都可以为变量命名。做为变量名的开头不能为字,如 3a_是错的,而a_3_a3是正确变量名不能为关键字,像if  else  printf 等等都不能

四 内存分配的大小

不同系统对于数据类型的内存的分配大小不一样,这里以32位系统为例,

Short 类型分配的内存大小是2 个byte;
int   类型分配的内存大小是4 个byte;
long 类型分配的内存大小是4 个byte;
float 类型分配的内存大小是4 个byte;
double 类型分配的内存大小是8 个byte;
char 类型分配的内存大小是1 个byte。

(注意这里指一般情况,可能不同的平台还会有所不同,具体平台可以用sizeof 关键字测试一下)

五 整数溢出

如果整数太大,超出整数类型的范围它将溢出到起始点。

六  C语言数据类型打印对应的占位符

char                          %c

unsigned char                 %c

short                         %hd
unsigned short                 %hu
long                          %ld
unsigned long                  %lu
int                            %d
unsigned int                   %u
float                          %f%g
double                        %lf%lg
%f%lf保留小数点后无效的0%g%lg不保留
    小数点后无效的0

%nd也可以作为占位符打印整数数字,n
   一个整数。打印结果一定占n个位置,
   空位置补充空格字符
%-nd打印结果也占n个位置,空位置出现在
   右边
%0nd打印结果也占n个位置,空位置用字符
    ‘0’填充
%n.mf可以用来打印浮点数,打印结果中整个
    数字占n个位置,小数点后面占m个位置

七 C 语言常用转义字符表

转义字符                     含义                  ASCII 码(16/10 进制)

\o                         空字符(NULL)                   00H/0

\n                         换行符(LF)                      0AH/10

\r                         回车符(CR)                      0DH/13

\t                         水平制表符(HT)                  09H/9

\v                         垂直制表(VT)                    0B/11

\a                         响铃(BEL)                       07/7

\b                         退格符(BS)                      08H/8

\f                         换页符(FF)                      0CH/12

\                        单引号                         27H/39

\                        双引号                         22H/34

\\                          反斜杠                        5CH/92

\?                       问号字符                       3F/63

\ddd                     任意字符                     三位八进制

\xhh                     任意字符                     二位十六进制

字符常量中使用单引号和反斜杠以及字符常量中使用双引号和反斜杠时,都
必须使用转义字符表示,即在这些字符前加上反斜杠。
在 程序中使用转义字符\ d d d 或者\ x h h 可以方便灵活地表示任意字符。
\ d d d 为斜杠后面跟三位八进制数,该三位八进制数的值即为对应的八进制A S C I I 码值。\ x 后面跟两位十六进制数,该两位十六进制数为对应字符的十六进制 A S C I I 码值。

使用转义字符时需要注意以下问题:
1) 转义字符中只能使用小写字母,每个转义字符只能看作一个字符。
2) \v 垂直制表和\f 换页符对屏幕没有任何影响,但会影响打印机执行响应操

作。
3) 在 程序中,使用不可打印字符时,通常用转义字符表示

注:
1)转义字符中只能使用小写字母,每个转义字符只能看作一个字符。

2)\v垂直制表和\f换页符对屏幕没有任何影响,但会影响打印机执行响应操作。

3)在C程序中,使用不可打印字符时,通常用转义字符表示。

4)转义字符’\0’表示空字符NULL,它的值是0。而字符'0'的ASCII码值是48。因此,空字符’\0’不是字符0。另外,空字符不等于空格字符,空格字符的ASCII码值为32而不是0。编程序时,读者应当区别清楚。

5) 如果反斜线之后的字符和它不构成转义字符,则’\’不起转义作用将被忽略。

例如:

printf(“a\Nbc\nDEF\n”);

输出:

aNbc

DEF

6)转义字符也可以出现在字符串中,但只作为一个字符看待。

例 求下面字符串的长度

“\026[12,m” 长度为6

“\0mn”   长度为0。(想想:为什么不是2)

八   八进制和十六进制

前缀0x或者0X表示使用十六进制值;前缀0(零)表示使用八进制。 

要用八进制而不是十进制显示整数,用%o(不是零)代替%d。要显示十六进制整数,使用%x或%X。如果想显示C语言前缀,可以使用说明符%#o  %#x和%#X分别生成0  0x 和0X前缀。 

                                                         2016/4/26晚 记                  

你可能感兴趣的:(c数据类型)