博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C primer plus 学习随笔(1)
阅读量:4670 次
发布时间:2019-06-09

本文共 1913 字,大约阅读时间需要 6 分钟。

数据类型

int类型

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

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

1 #include 
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 }

 

   输出:

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

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

其他整数类型

  • short int 类型(或者简写为short类型):可能占用比int类型更少的存储空间,用于仅需小数值的场合以节省空间。同int类型一样,short类型是一种有符号类型。
  • long int 类型(或者简写为long类型):可能占用比int类型更多的存储空间,用于使用大数值的场合。同int类型一样,long类型是一种有符号类型。
  • long long int 类型(或者简写为long long类型):可能占用比long类型更多的存储空间,用于使用更大数值的场合。同int类型一样,long long类型是一种有符号类型。
  • unsigned int类型(或者简写为unsigned类型):用于只使用非负值的场合。这种类型同有符号类型的表示范围不同,无符号数可以表示更大的数值。
  • unsigned long int(简写为unsigned long)和unsigned short int(简写为unsigned short)类型。
  • 关键字signed可以和任何有符号类型一起使用,它使数据的类型更加明确。

  为什么说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)。

转载于:https://www.cnblogs.com/liuk11122/p/3721893.html

你可能感兴趣的文章
ireport5.6+jasperreport6.3开发(四)--以javabean为基准的报表开发(ireport)
查看>>
Spring面试底层原理的那些问题,你是不是真的懂Spring?
查看>>
Java知识导航总图
查看>>
关于Ajax的实现
查看>>
$cast
查看>>
js 把字符串格式化成时间
查看>>
关于老师
查看>>
[Swift]LeetCode212. 单词搜索 II | Word Search II
查看>>
jquery知识点总结二
查看>>
利用map ,找出list里面string类型,长度最小的那个
查看>>
今天真手贱.
查看>>
【转载】如何使用docker部署c/c++程序
查看>>
Android Binder机制(二) ------- 服务的实现
查看>>
[Algorithm] Find first missing positive integer
查看>>
[Angular] @ViewChild and template #refs to get Element Ref
查看>>
[Angular] Show a loading indicator in Angular using *ngIf/else, the as keyword and the async pipe
查看>>
[Angular] Configurable Angular Components - Content Projection and Input Templates
查看>>
[PWA] 17. Cache the photo
查看>>
[RxJS] ReplaySubject with buffer
查看>>
[Firebase] 3. Firebase Simple Login Form
查看>>