常用头: 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 = 3000000000;short end = 200;long big = 65537;long long verybig = 12345678908642;printf("un = %u and not %d\n", un, un); //u=udprintf("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 0;
}

  结论:即使是变量本身是无符号类型, 打印的时候也需要加上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 = 2000000000;long n4 = 1234567890;printf("%ld %ld %ld %ld\n", n1, n2, n3, n4);return 0;
}

  输出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仍然读取了错误的字节

转载于:https://www.cnblogs.com/JohnABC/p/4462157.html

C-C Primer Plus阅读笔记相关推荐

  1. C++ Primer Plus 阅读笔记一

    第2章:开始学习C++ C++ 程序基本结构 C++区分大小写字符,文件扩展名为cpp.所有的语句要以英文字符分号 ;;; 结尾,不能省略. #include <iostream>usin ...

  2. C++Primer Plus (第六版)阅读笔记 + 源码分析【目录汇总】

    C++Primer Plus (第六版)阅读笔记 + 源码分析[第一章:预备知识] C++Primer Plus (第六版)阅读笔记 + 源码分析[第二章:开始学习C++] C++Primer Plu ...

  3. C++ Primer 第五版 第6章——函数阅读笔记及习题答案(完整,附C++代码)

    C++Primer(第五版)第6章函数的阅读笔记及课后习题答案总结,课后习题答案是自己学习写出来的,如果有误,欢迎指正 还不完整,后续会更新添加 阅读笔记 C++ Primer 第五版 第6章 6.1 ...

  4. C++ Primer Plus 6th代码阅读笔记

    C++ Primer Plus 6th代码阅读笔记 第一章没什么代码 第二章代码 carrots.cpp : cout 可以拼接输出,cin.get()接受输入 convert.cpp 函数原型放在主 ...

  5. C++ Primer Plus 学习笔记(第 4 章 复合类型)

    C++ Primer Plus 学习笔记 第 4 章 复合类型 数组 数组(array)是一种数据格式,能够存储多个同类型的值. 要创建数组,可使用声明语句.数组声明应指出以下三点: 存储在每个元素的 ...

  6. trainer setup_Detectron2源码阅读笔记-(一)Configamp;Trainer

    一.代码结构概览 1.核心部分 configs:储存各种网络的yaml配置文件 datasets:存放数据集的地方 detectron2:运行代码的核心组件 tools:提供了运行代码的入口以及一切可 ...

  7. VoxelNet阅读笔记

    作者:Tom Hardy Date:2020-02-11 来源:VoxelNet阅读笔记

  8. Transformers包tokenizer.encode()方法源码阅读笔记

    Transformers包tokenizer.encode()方法源码阅读笔记_天才小呵呵的博客-CSDN博客_tokenizer.encode

  9. 源码阅读笔记 BiLSTM+CRF做NER任务 流程图

    源码阅读笔记 BiLSTM+CRF做NER任务(二) 源码地址:https://github.com/ZhixiuYe/NER-pytorch 本篇正式进入源码的阅读,按照流程顺序,一一解剖. 一.流 ...

最新文章

  1. java 操作mysql数据库得到错误码_[数据库/Java]数据库开发过程中产生的MySQL错误代码及其解决方案...
  2. [C#]面向对象设计
  3. Ubuntu 当黑屏解决方案安装
  4. 科大星云诗社动态20210403
  5. Tensorflow载入模型详解,方法一(基础版):针对测试模型性能 和 使用模型。
  6. Java IdentityHashMap size()方法与示例
  7. 草稿 9203 作业重点关注
  8. 计算机拆装与维修技能综述,综述虚拟机在计算机硬件组装与维护教学中的应用...
  9. 程序员面试金典——17.8最大连续数列和
  10. 转移 AD Time Server
  11. java;break语句
  12. 左耳听风——笔记二:程序员练级攻略
  13. 将.pem转换为.crt和.key
  14. 文本聚类python fcm_模糊C均值聚类-FCM算法
  15. 微商模式的出路在哪里?
  16. excel冻结窗口怎么设置_粗暴讲解,2分钟 | 即懂excel 冻结首行、首列和单元格怎么弄?...
  17. python小游戏贪吃蛇下载_python实现贪吃蛇小游戏
  18. Revo Uninstaller猎人模式操作说明
  19. java聚类分析实例_K-means算法的java实现,聚类分析681个三国武将
  20. 香港银行开户多少钱能开下来

热门文章

  1. 有趣的css图形实现
  2. 《R语言数据分析》——3.2 聚集
  3. php简单文件上传类
  4. Makefile和automake中判断CPU位数
  5. WebKit Frame对象分析
  6. 1. Visio Web 形状 - 无法与 Web 服务器建立连接。请稍后重新进行搜索。处理方式...
  7. Spring AOP(一):概览
  8. win10安装tensorflow (cpu版)
  9. SDNU 1481.纪念品分组(水题)
  10. Django中间件2