全球旧事资料 分类
ol只有0或1两个状态,在内存里。因此它的范围只有01,嘿嘿!也就是falsetrue了哟。在我们写程序的时候,脑子里第一反应可以不受数据类型的限制。我们可以首先想到这个类型占用多少个字节,就认为它就是一块儿内存。你可以理解成线段或者进度条的一部分。然后再看这个数据类型(基本数据类型)是否为有符号,然后你在写程序的时候就能有效的控制它的最大数,最小数。从而避免发生溢出等。数据类型,说白了只是语法上的限制。你要是稍微底层一点或者指针操作,那么类型都可以忽略。一切都是在操作内存,即一切都在你的掌控之中。有符号或者无符号只是在比较运算和感官上有正负。在内存中存放的数据是没有符号可言的,你可以这么理解,一个u
sig
edi
t变量的值为0xffffffff,那么同样是0xffffffff表示为i
t类型,它就等于1。而在内存中都是同样的存储方式。所以,首先我们得跨过数据类型给我们带来的某些迷惑。不要让它限制了我们的思维。我们不能坐井底观蓝天以为自己在世外桃源,而不知自己却身处荒漠。我们得跳出去看世界。本来想提个问题让大家去看看每种数据类型在内存中是这么存放的,在内存中观察我们的变量占用的字节数及所在位置(内存地址)的。但是可能有的朋友对VC(我是用的VC2005)不是很熟。内存窗口在哪儿也不知道。那么这个问题就留给知道的人去摸索吧,至于不知道的朋友,我会在以后专门讲调试技巧的时候讲VC的一些常用于调试时观察的窗口。好了,继续我们的探索。下面一个数据类型是64位整数,C99为C语言扩展了新的整数类型lo
glo
g,通常被定义成64位宽。但是C标准并没有定义具体的整数类型的宽度,
f只定义了lo
glo
g的级别高于lo
g,lo
g的级别高于i
t,i
t的级别高于short,short的级别高于char。级别高的整数类型的宽度大于等于级别较低的整数类型。占用字节数位8字节,同样需要注意的也在上面提出了。另外根据这些需要记住的16进制数,大家可以对内存有个比以前更直观的理解了。16禁止数每一位表示4位,2位表示一个字节。比如:0xff就表示一个字节(这里只是纯观察哈)了。0xf就表示字节的低4位全是1,在二进制上为00001111。够直观吧?再者就是浮点数,有32位和64位。浮点数在内存中看是看不出是否为浮点数的,因为跟整数的存法没有上面区别。但程序是怎么知道那是浮点数的呢?呵呵,浮点数在存放进内存的时候是通过换算之后才存入内存的,以后我们单独列出来讲浮点数的存储。大家也可以去搜索一些先r
好听全球资料 返回顶部