C语言的数据类型图:
(1)常量:值不能被改变的量成为常量,常量的变量名用大写,变量用小写,定义常量的符号: #define CONSTANT 26 (常量符号的值在其作用域内不能被改变,也不能被再 赋值)
(2)变量: 变量代表内存中具有特定属性的一个存储单元,它用来存放数据,也就是变量的值在程序运行期间这些值是可以改变的。从变量中取值实际上是通过变量名找到相应的内存地址,从该存储单元中读取数据。
(3)标识符:在C语言中用来对变量,符号常量,函数,数组,类型等数据对象命名的有效字符序列统称为标识符,标识符只能有字母,数字和下划线这三种元素组成,并且第一个不能是数字,并且区别大小写。
(4)整型数据
① 整型常量的表示方法
十进制 八进制(以0开头的数) 十六进制(以0x开头的数)
② 整形数据在内存中的存放形式
数据在内存中是以 二进制 形式 存放的,不同的编译系统为整形数据分配的字节数是不一样的(Turbo C 为一个整型变量在内存中分配2个字节的存储单元,Visual C++ 则分配4个字节,注意 本博客按照Turbo C++ 3.0 来学习),实际上数值是以补码表示的,正数的补码和原码相同,负数的补码是把负数先取绝对值再按位取反再加1.
③ 整型变量的分类
基本整型(int)(-32767~32768) 短整型(short) 长整型(long)
对以上三种类型都可以加上修饰符unsigned或者signed以指定其是“无符号”或者“有符号”,不指定默认是signed,也就是说最高位是符号位,而无符号的整型只能用来存放正数,所以存放正数的范围扩大一倍。
再次强调C语言本身并没有具体规定以上各种数据所占的内存的字节数,只是要求long型数据长度不短于int,int不短于short,具体如何分配大小,由系统决定。
④ 整形数据的溢出
int 类型最大数是32767,二进制形式是0111 1111 1111 1111 ,如果给它再加1,就会变成1000 0000 0000 0000 = -32768;结果不正确但程序不会报错,这点余姚程序员细心。
原文:http://blog.csdn.net/yangdong_123/article/details/24575485