匹配printf()说明符的类型
第1问题:
打印结果如下:
通常,在程序代码中使用2345这样的数字时,它以int类型存储。当使用1000000这样的数字int类型不能表示时,编译器会视为long int类型(假定这种类型可以表示该数字),如果数字大于long类型的最大值,C会视其为unsigned long类型。如果仍然不够,C会视其为long long类型或者unsigned long long类型(如果有这些类型的话)。
第2问题:
下面是在某系统上的执行结果:
这个例子表明如果使用了不正确的说明符,会造成意想不到的结果。首先,对无符号变量un使用%d说明符号会导致显示负值!这是由于在程序运行的系统中,无符号数3000000000和有符号数-129496296在内存中的表示方法一样。所以,如果告诉printf()函数该值是无符号的,它将打印某个值;而告诉printf()函数该函数是有符号的,它将打印另外一个值。在数值大于有符号类型最大值的时候会发生这种情况。对于小一些的整数(比如96),有符号和无符号类型的存储和显示都是相同的。
其次,不论使用%hd还是%d,short类型变量end的显示结果相同。这是因为在传递函数参数时C自动将short类型的值转换为int类型。这会在您的脑子里引起两个疑问:为什么要进行这样的转换?h修饰符的用处是什么?第一问题的答案是:int 类型被认为是计算机处理最方便有效的整数类型,所以在short类型和int类型长度不同的系统中,使用int类型值进行参数传递的速度更快;第二个问题的答案是:可以使用h修饰符显示一个较长的整数被截为short类型的样子(short在16位系统的取值范围为32767~(-32768)),输出的第三行就演示了这一点。把值65537按照二进制格式写为一个32位的数字时,它应该0000000000000001 0000000000000001在printf()中使用%hd说明符将使它只显示后16位,即显示值1。与此类似,最后一行输出先显示了verybig变量的完整值,然后通过使用%ld说明符显示了在它的后32位中的值。
匹配printf()说明符的类型相关推荐
- 类型“XXX”违反了继承安全性规则。派生类型必须与基类型的安全可访问性匹配或者比基类型的安全可访问性低。...
类型"XXX"违反了继承安全性规则.派生类型必须与基类型的安全可访问性匹配或者比基类型的安全可访问性低. 原文 http://help.jumbotcms.net/detail_2 ...
- printf输出string类型
方法 用c_str()函数 C++ string的介绍 string 是C++中的字符串. 字符串对象是一种特殊类型的容器,专门设计来操作的字符序列. 不像传统的c-strings,只是在数组中的一个 ...
- C++ Primer 5th笔记(chap 17 标准库特殊设施)匹配与 Regex 迭代器类型
1. regex迭代器是一种迭代器适配器,被绑定到一个输入序列和一个对象上 eg. 下表操作也适用于cregex_iterator.wsregex_iterator和wcregex_iterator ...
- 返回值类型与函数类型不匹配_C++返回值类型后置(跟踪返回值类型)
在泛型编程中,可能需要通过参数的运算来得到返回值的类型.考虑下面这个场景: template <typename R, typename T, typename U>R add(T t, ...
- [C++] printf 打印 string 类型
string word = "hanjiale"; printf("%s", word.c_str());
- printf() 常见打印类型
%d 打印(有)符号整数 %u 打印无符号整数 (十进制) %f 打印单精度浮点型 %lf 打印双精度浮点型 %c 打印字符 %s 打印字 ...
- printf格式化输出类型
%d 十进制有符号整数 %u 十进制无符号整数 %f 浮点数 %s 字符串 %c 单个字符 %p 指针的值 %e 指数形式的浮点数 %x, %X 无符号以十六进制表示的整数 %0 无符号以八进制表示的 ...
- idea 查找 匹配多个文件类型
file mask: *.java,*.xml 英文,分割,没有空格.
- C语言基本数据类型有哪些?
本节将详细介绍C语言的基本数据类型,包括如何声明变量.如何表示字面值常量(如,5或2.78),以及典型的用法.一些老式的C语言编译器无法支持这里提到的所有类型,请查阅你使用的编译器文档,了解可以使用哪 ...
最新文章
- TensorFlow学习笔记——实现经典LeNet5模型
- getopt长参数(长选项)获取不到参数BUG
- R开发(part9)--文件系统管理
- 在python中模块可以封装_python 制作python包,封装成可用模块教程
- python3异常_python3 异常处理
- shell下数字和字符串比较操作命令
- java开发工作找不到要放弃吗,这样学习Java,才能找到一份Java开发的工作。不要盲目的学!...
- 小写数字转大写_微软太坏了,这个函数居然被隐藏了,用它搞定数值转中文大小写...
- Unity3D标准资源包下载与使用
- wps垂直排列标题与文本_如何垂直设置wps文本
- 哈佛幸福课-完美主义
- Linux software RAID 1 - root filesystem becomes read-only after a fault on one disk
- luogu 1757 分组背包
- quark h5 学习
- HOS Develop Notes-开启ssh服务
- mingw+msys windows下配置
- HG30-IIB型数字多功能校准仪
- 苹果xr截屏怎么截_原来苹果手机自带长截屏功能!以前一直不知道,真让人相见恨晚...
- 折线迷你图怎么设置_Excel2013如何使用迷你图展示数据?
- 接入FaceBook登录和遇到问题排查