《C专家编程》笔记——第一章

标签(空格分隔): C专家编程


  1. p19:参数传递赋值约束:要使赋值合法,必须满足下列条件之一
    连个操作数都是指向有限定符无限定符相容类型指针,左边指针所指向的类型必须具有右边指针所指向类型的全部限定符

    • eg1:

      char *cp;
      const char *ccp;
      cpp=cp;//可以正常赋值
      • 左操作数cpp是一个指向有const 限定符的char指针
      • 右操作数cp是一个指向没有限定符的char指针
      • char类型和char类型都是相容的,左操作数所指向的类型具有右操作数所指向的类型的限定符(无),再加上自身的限定符(const).
      • 注意:反过来就不能进行赋值:
        cp=ccp; /*编译错误*/
        const float *不是一个有限定符的指针类型—它的类型是“指向一个具有const限定符的float类型的指针”,也就是说const限定符限定的是修饰指针所指向的类型,而不是指针本身。
    • eg2:
      const char**也是一个没有限定符的指针类型。它的类型是“指向一个具有const限定符的char类型的指针的指针”。
      由于char **const char**都是没有限定符的指针类型,但他们所指向的类型不一样(前者指向 char*,后者指向const char*),因此他们是不相容的。
  2. p24:对无符号类型的建议:
      尽量不要在你的代码中使用无符号类型,以免增加不必要的复杂性。尤其是,不要仅仅因为无符号数不存在(如年龄、国债)而用它来表示数量。
      尽量使用int那样的有符号类型,这样在涉及升级混合类型的复杂细节时,不必担心边界情况(如-1被译为非常大的正数)
      只有在使用位段和二进制掩码时,才可以使用无符号类型。应该在表达式中使用强制类型转换,是操作数均为有符号或无符号数,这样就不必由编译器来选择类型结果。

  3. p25:一个好的宏定义:

#define TOTAL_ELEMENTS (sizeof(array)/sizeof(array[0]))//使用该方式,移值方便
\\而不是
#define TOTAL_ELEMENTS (sizeof(array)/sizeof(int))//不便于修改数组基本类型

参考:《C编程专家》 Peter Van Der Linden 著 徐波 译

《C专家编程》笔记——第一章相关推荐

  1. 《Go语言圣经》学习笔记 第一章 Go语言入门

    Go语言圣经学习笔记 第一章 Go语言入门 目录 Hello, World 命令行参数 查找重复的行 GIF动画 获取URL 并发获取多个URL Web服务 本章要点 注:学习<Go语言圣经&g ...

  2. 【王道考研】操作系统 笔记 第一章

    特此鸣谢王道考研 本文参考王道考研的相关课程 若有侵权请联系,立删 其余笔记链接: [王道考研]操作系统笔记 第一章_才疏学浅743的博客-CSDN博客 [王道考研]操作系统 笔记 第二章上 进程调度 ...

  3. Android群英传神兵利器读书笔记——第一章:程序员小窝——搭建高效的开发环境

    Android群英传神兵利器读书笔记--第一章:程序员小窝--搭建高效的开发环境 目录 1.1 搭建高效的开发环境之操作系统 1.2 搭建开发环境之高效配置 基本环境配置 基本开发工具 1.3 搭建程 ...

  4. 机器人导论(第四版)学习笔记——第一章

    机器人学导论(第四版)学习笔记--第一章 1. 概述 1.1 背景 1.2 操作臂力学和控制 1.3 符号 1. 概述 1.1 背景 工业自动化的发展带来了工业机器人的高速发展.本书聚焦机械臂的力学和 ...

  5. 微服务笔记:第一章_微服务简介|Eureka注册中心|Nacos注册中心|Nacos配置管理|Feign|Gateway服务网关

    微服务笔记:第一章_微服务简介|Eureka注册中心|Nacos注册中心|Nacos配置管理|Feign|Gateway服务网关 1. 微服务简介 1.1 服务架构演变 1.2 SpringCloud ...

  6. 深入理解 C 指针阅读笔记 -- 第一章

    上周末,我在图书馆看到了这本很薄的书 -- <深入理解 C 指针>       这本书中写的内容,个人感觉适合一个初学者,内容不是很难.我也读了下,对每一章都做了笔记,笔记都是用代码的形式 ...

  7. Java7并发编程指南——第一章:线程管理

    Java7并发编程指南--第一章:线程管理 @(并发和IO流) Java7并发编程指南第一章线程管理 思维导图 项目代码 思维导图 项目代码 GitHub:Java7ConcurrencyCookbo ...

  8. 2010计算机知识点总结,2010年全国职称计算机考试:知识点笔记第一章

    第一章 信息技术与计算机文化 1. 信息技术与计算机 1) 信息技术的概念:利用科学的原理.方法及先进的工具和手段,有效地开发和利用信息资源的技术体系.包括微电子技术.计算机技术.软件技术.通信技术等 ...

  9. 浙江大学pta答案python第四章_浙大PTA-Python题库 编程题第一章(1-1~1-3)题解

    其他各章题解链接如下 浙大PTA-Python题库 编程题第一章(1-1~1-3)题解 https://blog.csdn.net/zimuzi2019/article/details/1070206 ...

  10. 【连载】大学物理笔记——第一章末+第二章质点动力学

    我是灼灼,一只初学Java的大一金渐层. 向往余秀华和狄兰·托马斯的疯狂,时常沉溺于将情感以诗相寄:追逐过王尔德.王小波的文字,后陷于毛姆和斯蒂芬·金不可自拔:热爱文学的浪潮,白日梦到底却总在现实里清 ...

最新文章

  1. python重命名文件pycharm_Python中批量修改变量名太费劲?Pycharm中使用重命名一次搞定...
  2. 人工智能中“图神经网络GNN”如何理解?(附斯坦福综述)
  3. mysql date(6)_不使用MySQL中的DATE_ADD()将6个小时添加到now()函数吗?
  4. MapReduce中Client提交Job源码分析
  5. 收藏/一文弄清楚强弱电机房位置大小及布置如何选择?
  6. nginx官方模块之http_sub_status_module
  7. Jquery实现点击页面发送弹幕效果
  8. CentOS下firefox安装flash说明
  9. c++17(6)-数学 函数
  10. Linux select 实现并发服务器和客户端
  11. html-css样式表
  12. c+oracle+bulk,C#使用OracleBulkCopy
  13. IIS上部署网站问题总结
  14. [JDK8] Lambda
  15. Java类和对象(全网最细详解)
  16. 笔记本电池信息查询与电池更换
  17. CAM和GradCAM
  18. 刷单会入刑了你知道吗?四招教你迅速识别刷单!
  19. Latex中文字体字号对应
  20. 引流软件哪个好,脚本引流软件实战解说

热门文章

  1. 推荐几个rpm包下载网站
  2. 利用U盘引导进入pe系统修复操作系统
  3. 服务器搬迁方案_IT机房搬迁 实施方案
  4. NATAPP内网穿透
  5. excel文件快速撤销工作表保护
  6. 证书制作,各个环节的原理以及推送证书制作,和如何为推送服务器提供证书
  7. factory setup 序列号_麻烦哪位大侠帮我把改一下setup factory 中生成16位注册码的脚本,(在线等)急!!!...
  8. 数仓SQL面试题(持续更新中!!!)
  9. LabVIEW中二维码生成和识别
  10. sql语句大全+实例讲解