摘要:重读C Primer Plus ,查漏补缺

  重读C Primer Plus,记录遗漏的、未掌握的、不清楚的知识点。

一、概览

  1、链接器的作用是将这3个目标元素(目标代码、系统的标准启动代码和库代码)结合在一起,并将它们存放在单个文件,即可执行文件中。

二、C语言概述

  1、对于标识符,一些旧的编译器只识别8个字符,C99标准识别63个字符。在只识别8个字符的编译器上,Shakespeare和Shakespencil不会报错,但他们将被看作是一个名字。

三、数据和C

  1、%#0d,%#xd,%0Xd 可以打印出 0、0x、0X前缀。

  2、在常量数值后加 U、L或u、l 表示希望将这个常数以什么形式存储。

  3、最小长度类型 int_least8_t、最快最小长度类型int_fast8_t。 (inttype.h)

  4、float:至少6位有效数字,8位用来表示指数及符号,24位用来表示非指数部分。
    double:至少13位有效数字。
    2.0e10 + 1.0 会出错,因为float类型只有6、7位的有效数字。

四、字符串和格式化输入输出

  1、sizeof(n) 等价于 sizeof n 当n是变量是,括号可加可不加,一般采取第一种。

  2、limits.h中定义了一些有关类型的常量。

  3、t,和整数转换说明符一起使用,表示一个ptrdiff_t值(与两个指针之间的差相对应的类型);z,和整数转换说明符一起使用,表示一个size_t值(sizeof返回的类型)。示例:%td、%zd。

  4、printf("%ld %ld %ld %ld", n1, n2, n3, n4),函数根据变量类型开辟相应大小的堆栈内存,但是根据格式说明符去读取相应的字节数,从而打印。

  5、printf("%*d\n", wideth, num),通过修饰符*动态控制字段宽度;scanf("%*d"),则是通过修饰符*跳过一个字段。

  6、scanf("%10s"),读取特定长度的字符串,有助于防止较短的缓冲区溢出。

五、运算符、表达式和语句

  1、使用%zd可以直接打印size_t类型。

  2、对于表达式,y = (4 + x++) + (6 + x++); 再明确一点,C可以保证的是再这条语句结束后,x的值会比之前增加2,但是在当前语句中,哪一个自增被优先计算取决于具体的实现,所以尽量避免使用该类型的语句。

  3、用 ‘{}’ 包围的语句称之为一个复合语句,也就是一个代码块(block),C将其视为一个语句。

  4、表达式:是运算符和操作数的组合。最简单的表达式只有一个常量或一个变量。
    语句:是对计算机的命令,有简单语句和复合语句。
    简单语句:声明语句、赋值语句、函数调用语句、结构化语句、空语句。

  5、关于类型转换。在同一语句中包含不同类型的变量,一般会发生发生。
    类型级别从高到底的顺序是:long double、double、float、unsigned long long 、long long、unsigned long、long、unsigned int、int。
    当 long 和 int 具有相同的大小时,此时 unsigned int 的级别比 long 高。之所以没有出现 char 和 short,是因为它们已经被提升为 int 或 unsigned int。

六、C控制语句:循环

  1、‘,’ ,逗号运算符,它可以用作一个顺序点,所有逗号左边的操作,都在逗号之后生效。

  2、int i = 249, 500; 等价于 int i = 249; 500;。
    int i = (249, 500); 等价于 249; int i = 500;。

  3、没了。

最新文章

  1. sql编程篇 (五) 事务
  2. Asp.net MVC5 路由Html后缀的问题
  3. 第九章 JQUI
  4. jquery weibo 留言
  5. 【BZOJ-3638&3272&3267&3502】k-Maximum Subsequence Sum 费用流构图 + 线段树手动增广
  6. 快速切换IP的批处理!
  7. mysql入门问题
  8. JS基础知识(基本类型 引用类型)
  9. Mac中Fn键技巧
  10. 【风马一族_Android】Android 从命令行界面获取手机信息
  11. div+css遮罩层
  12. bzoj1190
  13. WebStorm开发Nodejs环境搭建,包括破解最新的WebStom11破解
  14. chapter 14_1 环境
  15. 关于package.json的理解
  16. 从交叉熵损失到Facal Loss
  17. 微信公众号Unauthorized API function
  18. KVM内核文档阅读笔记
  19. laravel call传参
  20. 026-微软Ajax异步组件

热门文章

  1. LAMP模拟搭建wordpress,phpmyadmin环境
  2. C# HttpWebRequest 后台调用接口上传大文件以及其他参数
  3. dedecms新增联动类别后的使用方法
  4. React的diff算法(译文)
  5. Spring IOC(3)----bean实例化
  6. 继续学习freertos消息队列
  7. Head First设计模式——策略模式
  8. 微信小程序前端页面书写
  9. JAVA中JDK开发环搭的搭建,jvm jre
  10. Git上传到gitlab现有分支