C-C Primer Plus阅读笔记
常用头: stdio.h string.h inttypes.h limits.h float.h
1.打印short、long、long long和unsigned
#include <stdio.h> int main(void) {
unsigned int un = ;
short end = ;
long big = ;
long long verybig = ;
printf("un = %u and not %d\n", un, un); //u=ud
printf("end = %hd and %d\n", end, end);
printf("big = %ld and not %hd\n", big, big);
printf("verybig=%lld and not %ld\n", verybig, verybig);
return ;
}
结论:即使是变量本身是无符号类型, 打印的时候也需要加上u, 否则按有符号类型打印; 如果用短类型去打印长类型, 则会被截取最后N位
2.八进制或十六进制表示一个字符
char c = '\0101';
char ch = '\x41';
PS:为什么使用'\0101'而不是0101表示一个字符, 因为'\0101'更能清晰的表达一个字符的意图, 其次'\0101'这样的转义序列可以嵌入到C字符串中, 如"Hello!\0101\n"
3.缓冲区满、遇到换行符及需要输入的时候会将缓冲区内容输出到屏幕
4.浮点型常量默认是double(可以加后缀f为float型存储), 整型常量默认以int型存储(可以加后缀l把小整数变为long型存储), 如果int不能表示则用long, 如果long不能表示则用unsigned long, 如果仍然不够则使用long long或unsigned long long来表示
5.类型转换http://www.cnblogs.com/JohnABC/p/4466113.html
6.scanf 在读取字符串时遇到空格即停止
7.printf("*%5.3d*", 2); 结果为 * 002*
8.
#include <stdio.h> int main() {
float n1 = 3.0;
float n2 = 3.0;
long n3 = ;
long n4 = ;
printf("%ld %ld %ld %ld\n", n1, n2, n3, n4);
return ;
}
输出0 1074266112 0 1074266112
9.printf 工作原理
如8中的例子
printf("%ld %ld %ld %ld\n", n1, n2, n3, n4);
该调用告诉计算机把变量n1, n2, n3, n4的值传递给计算机, 计算机把他们放置到堆栈的一块内存中, 计算机根据变量的类型而非转换说明符把这些值放到堆栈中, 所以n1在堆栈中占用8个字节(float被转换成double), 同样, n2占用8个字节, n3和n4分别占用4个字节, 然后控制转移到printf函数, 该函数从堆栈把值读出来, 但是在读取时, 它根据转换说明符去读取, %ld说明符指出, printf应该读取4个字节, 索引printf在堆栈中读取前4个字节作为它的第一个值, 这就是n1的前半部分, 它被解释成一个长整数, 下一个%ld说明符再读取4个字节, 这就是n1的后半部分, 它被解释成第二个长整数, 同样%ld的第三个和第四个实例使得n2的前半部分和后半部分被读出, 并被解释成两个长整数, 所以虽然n3和n4的说明符都正确, 但是printf仍然读取了错误的字节
最新文章
- 如何将Scrapy 部署到Scrapyd上?
- js常见执行方法$(document).load(),$(document).ready()
- PISCES P4-vSwitch 安装以及一次失败的测试
- 鼠标放上去,不同的cursor光标类型
- js判断radio,checkbox是否选中
- 编程算法 - 扑克牌的顺子 代码(C)
- JS怎样将拖拉事件与点击事件分离?
- Luogu 1894 [USACO4.2]完美的牛栏The Perfect Stall / POJ 1274 The Perfect Stall(二分图最大匹配)
- dfs序和欧拉序
- (六)jdk8学习心得之Stream流
- JSAP101
- 安装Visual Studio 2013以及简单使用
- 接收上传的multi-file的文件(四)
- docker entrypoint入口文件详解
- 用C#写一个实现进程监控的自动关机工具
- React Native 系列(一)
- vxer
- 事后分析报告(M2阶段)
- pg limit限制返回的行
- LeetCode OJ:Sort Colors(排序颜色)