printf()的一些小问题
来源:互联网 发布:hao123解压软件 编辑:程序博客网 时间:2024/05/04 12:44
c编程的printf()函数看起来比较简单,但是还是有很多的小陷阱值得注意的。
最近用到了printf(),并且发现了自己以前没有遇到的小问题,为此,分享下。
1、
char a=198;//明显超过了127的限制了printf("%d",a);//如果修饰符选为%d时候是怎么输出的呢
如上,最后显示的是-58。原因是char 型变量a的内存地址里面存放着198即1100 0110,见下图的内存。
所以当以%d的形式来读取时候,1100 0110就会被当做是补码的形式,所以会被当做是-58。(可以自己计算一下,原码为-58,补码是0xC6,即 1100 0110)。
所以归根到底,printf()函数的输出问题还是要从内存分析。当格式修饰符不匹配时候,要看看内存存放的是什么,然后是以什么方式读取的,在这一点上要注意。
2、注意%c修饰符读入的都为ASCII码,如果想在屏幕上输出数字0;
那么应该是这样的
char a='0';//a的内存里面存放的是0x30pirntf("%c",a);
查看内存空间确实是0x30,也就是数字0对应的ascii码值。
而不是
char a=0;//这样屏幕上什么都没有输出,因为ASCII表的0代表的是NULL,内存空间里面存的是0 printf("%c\n",a);
0 0
- printf()的一些小问题
- 关于c的printf一些小问题技巧
- 有关printf的小问题
- c语言的printf一个小问题
- 关于printf输出结果的一些问题
- printf的小例子
- printf的一些用法
- 一些printf的经验
- 遇到的一个关于printf()的小问题。
- c语言的printf输出浮点数的一些问题
- printf的一些用法和64位移植性问题
- 有关有scanf及printf的一些误区及问题
- 一些小问题的集合
- 其它的一些小问题~
- opengl的一些小问题
- 常见的一些小问题
- 数论的一些小问题
- CSS的一些小问题
- [leetcode] 9 Palindrome Number
- wordpress与mysql之间不可告人的秘密
- 《C# in Depth:深入理解C#》读书笔记 - LINQ
- 用两个栈实现队列
- ThinkPHP 大D方法思想下的JDBC操作数据库D类
- printf()的一些小问题
- android studio上配置git、使用git
- Android Link
- get与post的区别
- 错误180无法将文件“obj\x86\Debug\WpfApplication3.exe”复制到“bin\Debug\WpfApplication3.exe”。文件“bin\Debug\WpfAp
- ViewPager自动轮播的几种方法
- 继续学乘法
- 关于 csdn 博客添加友情链接~~~~~
- Java HttpPost请求基于apache的httpclient