数据关键字

在C语言的C99规范中,C语言一共有12个和数据相关的关键字,分别是:

  • int: 整型数据类型,最常见的一种数据类型。一般来说,在现在64位系统普及的今天,一个int是占4个字节,也即32个bit.

  • long: 长整型数据类型,一个long一般占8个字节,也即64个bit.

  • short: 短整型数据类型,一个short一般占2个字节,也即16个bit。这种类型一般是用在明确知道数据不会太大的基础上的,主要是为了节省空间。另外需要注意的是,这里的short类型是有符号 的,过去我一直错误地认为short是无符号的。

  • unsigned: 无符号类型,这才是真正的无符号类型,其实它是unsigned int的简写,所占字节数是和int一致的,但是却是非负的,这主要是用在某个变量不可能出现负值的情况下,比如在计数的时候,它能取得比int还要大的正数。

  • char: 字符类型,其实本质也是整数类型。一个char占1个字节,即8个bit,因为ASCII码的范围是0-127,因此只需要8个bit就能表示了.对于字符和字符串来说,还有一点要注意的是,在C中,单引号中的一定是字符,而双引号中的一定是字符串。

  • float: 浮点数,一般来说占4个字节,32个bit,能够保持6位有效位。

  • double: 双精度浮点数,一般来说占8个字节,64个bit,能够保持10位有效位。

  • signed: 有符号类型,通常可以和任何有符号的类型放在一起使用,只是为了强调有符号,使得数据类型更加明确。

  • void: 空类型。

  • _ Bool: 布尔类型。True和False

  • _ Complex : 复数类型。

  • _ Imaginary : 虚数类型。

需要注意的是,这里的int,long,short所占字节数并不是固定的,不同的系统,不同的编译器在细节上可能会有不同的处理,但是C有如下的规定:

C保证short不会比intlong不会比int

在C语言中,sizeof关键字通常是用来获取数据的大小的,它以字节为单位给出数据的大小,返回的的数据类型是long unsigned int类型,在用printf()函数输出的时候,格式化字符应该是%lu,如果只用%d的话,编译器会报警告,但这不是错误。

常量

关于常量其实没什么好说的,唯一值得注意的是有关后缀的问题。可以通过在一个常量末尾添加特殊符号来指定其数据类型。

对于小数常量来说,如果后缀是fF,则该常量会被当做float类型;如果后缀是lL,则该常量会被当做long double;如果没有后缀则是double.

对于整数来说,如果后缀是lL,则该常量会被当做long;没有后缀则是int

输出

关于格式化输出的部分,我也不想多说什么,都是比较简单的,这里想记录的是,何时会刷新缓冲区。刷新缓冲区主要有3种情况:

  1. 缓冲区满了
  2. 遇到换行符了
  3. 需要等待用户输入字符的时候。

参考资料

  • 《C Primer Plus》第三章

Share on: TwitterFacebookEmail


Flyaway is the owner of this blog.
Comments

So what do you think? Did I miss something? Is any part unclear? Leave your comments below

comments powered by Disqus

Published

Category

programming-language

Tags

Contact