编程语言基础篇:数据类型

标识符与关键字

标识符

  标识符是用来标识变量、函数,或任何其他用户自定义项目的名称。C 规定,标识符只能是字母(A~Z,a~z)、数字(0~9)、下划线(_)组成的字符串,并且其第一个字符必须是字母或下划线。下面列出几个有效的标识符:

mohd       zara    abc   move_name  a_123
myname50   _temp   j     a23b9      retVal

C 是区分大小写的编程语言。因此,在 C 中,Manpower 和 manpower 是两个不同的标识符。
标识符虽然可由程序员随意定义,但标识符是用于标识某个量的符号。因此,命名应尽量有相应的意义,以便于阅读理解,作到“顾名思义”。

关键字

  关键字是由C语言规定的具有特定意义的字符串,通常也称为保留字。用户定义的标识符不应与关键字相同。ANSI C 标准有32个关键字,34种运算。下表列出了常见的32个 C 中保留字:

32个关键字
auto double int struct break else long switch
case enum register typedef char extern return union
const float short unsigned continue for signed void
default goto sizeof volatile do if while static

数据类型

(图) C语言数据类型

注:其中*为C99增加的

(图) C++数据类型
标签页3文本内容
<img src="https://hexo-1257031621.cos.ap-chengdu.myqcloud.com/%E5%8D%9A%E5%AE%A2%E9%85%8D%E5%9B%BE/hexo%20blog%20%E5%86%99%E4%BD%9C%E6%8A%80%E5%B7%A7/3.jpg" width="600" hegiht="400" >

  每种数据类型的存储大小、取值范围由编译器自行决定的。对于C语言来说,在Visual C++编译器中取值范围如下:

(图) C语言取值范围

  在实际应用过程中,有些数据只取正值,需要在数据类型前加上unsigned表示无符号型数据,如学号、年龄等。当然对应的singned表示有符号型数据,二进制最高位代表符号(0为正,1为负)。

(图) unsigned/signed型数据

  以整型数据为例,Visual C++为其分配4个字节(1字节=8位,共32位),以补码形式存放在存储单元中。正数的补码为二进制形式;如果是负数,先将此数绝对值的二进制按位取反,再加1。5和-5的补码用两字节形式表示如下:

(图) 整型数据补码

  对于字符型数据来说,目前普遍采用ANSCII字符集。

  • 字符’1’的对应的十进制数值为49,二进制为0110001
  • 字符’A’的对应的十进制数值为65,二进制为1000001
  • 字符’a’的对应的十进制数值为97,二进制为1100001

字符’1’和数值1是两种数据形式。

(图) ANSCII字符表

进制转换

  • 十进制DEC:采用0,1,2,3,4,5,6,7、8,9,逢10进1。
  • 二进制BIN:采用0,1,逢2进1。
  • 八进制OCT:采用0,1,2,3,4,5,6,7,逢8进1。
  • 十六进制HEX:采用0,1,2,3,4,5,6,7、8、9、0、A、B、C、D、E、F,逢16进1。
十进制DEC 二进制BIN 八进制OCT(0c) 十六进制HEX(0x或0X)
0 0000 0000 0 0
1 0000 0001 1 1
2 0000 0010 2 2
3 0000 0011 3 3
4 0000 0100 4 4
5 0000 0101 5 5
6 0000 0110 6 6
7 0000 0111 7 6
8 0000 1000 10 8
9 0000 1001 11 9
10 0000 1010 12 A
11 0000 1011 13 B
12 0000 1100 14 C
13 0000 1101 15 D
14 0000 1110 16 E
15 0000 1111 17 F
16 0001 0000 20 10
+