常用头: 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仍然读取了错误的字节

C-C Primer Plus阅读笔记的更多相关文章

  1. C++ Primer Plus阅读笔记

    cin进行文本输入 使用cin获取字符的基本方式 char ch; cin >> ch; cin读取char值时将忽略空格和换行符.此外,发送给cin的输入被缓冲.这意味着只有在用户按下回 ...

  2. C++ Primer 第四版阅读笔记

    阅读笔记 初始化 变量定义指定了变量的类型和标识符,也可以为对象提供初始值.定义时指定了初始值的对象被称为是 已初始化的.C++ 支持两种初始化变量的形式:复制初始化和 直接初始化.复制初始化语法用等 ...

  3. 阅读笔记 1 火球 UML大战需求分析

    伴随着七天国庆的结束,紧张的学习生活也开始了,首先声明,阅读笔记随着我不断地阅读进度会慢慢更新,而不是一次性的写完,所以会重复的编辑.对于我选的这本   <火球 UML大战需求分析>,首先 ...

  4. [阅读笔记]Software optimization resources

    http://www.agner.org/optimize/#manuals 阅读笔记Optimizing software in C++   7. The efficiency of differe ...

  5. 《uml大战需求分析》阅读笔记05

    <uml大战需求分析>阅读笔记05 这次我主要阅读了这本书的第九十章,通过看这章的知识了解了不少的知识开发某系统的重要前提是:这个系统有谁在用?这些人通过这个系统能做什么事? 一般搞清楚这 ...

  6. <<UML大战需求分析>>阅读笔记(2)

    <<UML大战需求分析>>阅读笔记(2)> 此次读了uml大战需求分析的第三四章,我发现这本书讲的特别的好,由于这学期正在学习设计模式这本书,这本书就讲究对uml图的利用 ...

  7. uml大战需求分析阅读笔记01

    <<UML大战需求分析>>阅读笔记(1) 刚读了uml大战需求分析的第一二章,读了这些内容之后,令我深有感触.以前学习uml这门课的时候,并没有好好学,那时我认为这门课并没有什 ...

  8. Hadoop阅读笔记(七)——代理模式

    关于Hadoop已经小记了六篇,<Hadoop实战>也已经翻完7章.仔细想想,这么好的一个框架,不能只是流于应用层面,跑跑数据排序.单表链接等,想得其精髓,还需深入内部. 按照<Ha ...

  9. Hadoop阅读笔记(六)——洞悉Hadoop序列化机制Writable

    酒,是个好东西,前提要适量.今天参加了公司的年会,主题就是吃.喝.吹,除了那些天生话唠外,大部分人需要加点酒来作催化剂,让一个平时沉默寡言的码农也能成为一个喷子!在大家推杯换盏之际,难免一些画面浮现脑 ...

随机推荐

  1. windows 下配置浏览器使用 kerberos

    最近 hadoop 一系列软件都给加上了 kerberos 认证,整体来说还算顺利,各组件也都继续正常工作,唯独 storm ui,个天杀的在 windows 上打不开. HTTP ERROR: 40 ...

  2. 使用threadpool并发测试,报错HTTPConnectionPool Max retires exceeded

    解决方法:和以下答案一致 https://blog.csdn.net/qq_21405949/article/details/79363084 场景: 在做爬虫项目或者是在发送网络请求的时候,一般都会 ...

  3. HDU 2102 A计划【三维BFS】

    A计划 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submissio ...

  4. Python与数据结构[4] -> 散列表[0] -> 散列表与散列函数的 Python 实现

    散列表 / Hash Table 散列表与散列函数 散列表是一种将关键字映射到特定数组位置的一种数据结构,而将关键字映射到0至TableSize-1过程的函数,即为散列函数. Hash Table: ...

  5. SNMP OID批量枚举工具

    SNMP OID批量枚举工具   SNMP信息包含大量的系统.设备信息.这些信息均使用OID方式表示.由于OID编号规则复杂,不便于记忆.为了快速通过OID批量获取指定信息,Kali Linux新增了 ...

  6. POJ 3168 Barn Expansion (几何基础)

    [题目链接] http://poj.org/problem?id=3168 [题目大意] 给出一些矩形,没有相交和包含的情况,只有相切的情况 问有多少个矩形没有相切或者边角重叠 [题解] 我们将所有的 ...

  7. POJ 1127 Jack Straws (计算几何)

    [题目链接] http://poj.org/problem?id=1127 [题目大意] 在二维平面中,给出一些木棍的左右端点,当木棍相交或者间接相交时 我们判断其连通,给出一些询问,问某两个木棍是否 ...

  8. 【后缀数组】poj3693 Maximum repetition substring

    sa在清空方面存在一些奇怪的问题……难以ac.(留坑?)

  9. 【博弈论】【SG函数】hdu1848 Fibonacci again and again

    某个状态的SG函数被定义为 除该状态能一步转移到的状态的SG值以外的最小非负整数. 有如下性质:从SG值为x的状态出发,可以转移到SG值为0,1,...,x-1的状态. 不论SG值增加与否,我们都可以 ...

  10. 爬取维基百科人物介绍,并使用pymysql存储到数据库

    代码如下: from urllib.request import urlopen from bs4 import BeautifulSoup import re import datetime imp ...