C primer plus 学习随笔

时间:2014-05-11 17:50:15   收藏:0   阅读:379

数据类型

int类型

   printf()输出八进制整数时,用%o代替%d,输出十六进制时,用%x。

   %#o、%#x和%#X分别生成0、0x、0X前缀。

bubuko.com,布布扣
1 #include <stdio.h>
2 int main(void)
3 {
4     int x = 100;
5     printf("dec = %d; octal = %o; hex = %x;\n", x, x, x);
6     printf("dec = %#d; octal = %#o; hex = %#x;\n", x, x, x);
7     return 0;8 }
bubuko.com,布布扣

 

   输出:

     dec=100;octal=144;hex=64;

              dec=100;octal=0144;hex=0x64;

其他整数类型

  为什么说long和short类型“可能”占用比int类型更多或者更少的存储空间呢?因为C仅保证short类型不会比int类型长,并且long类型不会比int类型短。这样做是为了适应不同的机器。

  当使用int类型不能表示一个数而使用long类型可以做到时,使用long类型。但是,在long类型大于int类型的系统中,使用long类型会减慢计算,所以没有必要时不要使用long类型。如果是在long类型等于int类型的系统中编写代码,当确实需要32位整数时,应使用long类型(而不是int类型),以便使程序被移植到16位机器上后仍然可以正常工作。

打印short、long、long long和unsigned类型数

  要打印unsigned int数字,可以使用%u符号。打印long数值,可以使用%ld格式说明符。如果系统中int和long类型具有同样的长度,使用%d就可以打印long数值,但是这会给程序移植到其他系统(这两种数据类型的长度不一样的系统)带来麻烦,所以建议使用%ld打印long数值。在x和o符号前也可以使用l前缀,因此%lx表示以十六进制格式打印长整数,%lo表示以八进制格式打印长整数。请注意,尽管在C中常量后缀可以使用大写和小写,但格式说明符只能使用小写字母。

  对short类型可以使用h前缀,因此%hd表示以十进制显示short整数,%ho表示以八进制显示short整数。h和l前缀都可以同u结合使用以表示无符号类型。比如,%lu表示打印unsigned long类型。

  使用%c说明打印一个字符。

float和double类型

  float类型必须至少能表示6位有效数字,取值范围至少为10-37到10+37double类型和float类型具有相同的最小取值范围要求,但它必须至少能表示10位有效数字。

  默认情况下,编译器将浮点常量当作double类型。

  printf()函数使用%f格式说明符打印十进制记数法的float和double数字,用%e打印指数记数法的数字。

print()函数什么时候真正把输出传送给屏幕?

  首先,printf()语句将输出传递给一个被称为缓冲区(buffer)的中介存储区域。缓冲区中的内容再不断地被传递给屏幕。标准C规定在以下几种情况下将缓冲区内容传给屏幕:缓冲区满的时候、遇到换行符的时候以及需要输入的时候。将缓冲区内容传送给屏幕活文件称为刷新缓冲区(flushing the buffer)。

C primer plus 学习随笔,布布扣,bubuko.com

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!