在学习C语言的过程中,我们都自己总结了一些重要的知识点,但是有些不常用的冷门知识点可能就被我们选择性忘记了,你要不要来回一下呢?

1:int跟signed int是一回事,short、long亦然,但char不是。

char、signed char、unsigned char在逻辑上是三种类型,比较直观的体现就是在C++的重载中,你可以定义参数类型分别为它们的三个同名函数。但实现上的类型只有两种,char可能是signed也可能是unsigned的,看编译器实现,现在很多编译器默认是signed,但可以通过选项配置或参数指定为unsigned。

2:你是否已经习惯了“\xHH”这种两个H的写法的16进制换码序列?

但实际上C规定H可以任意多的。

例如:

cout << strlen("\x0012") << endl;

不过如果后面数字太大,是有可能出现溢出的情况,不同编译器处理方式不同,gcc会报错,vc是截取末尾4字节。

可以试试:

cout << "\x1234567890000000000000000000041" << endl;

那如果我想要\x00、1、2这仨字符组成的字符串字面量呢?可以这样写:"\x00""12",多个字面量连着写,会帮你连起来。

3:字符串!

很多语言都支持用反斜杠放在行尾来折行,C++也可以,不过这种代码:

cout << "hello \\
tony" << endl;

有人可能会认为编译失败,因为行尾的反斜杠被前面一个转义了,但实际上一些编译器(比如gcc)并不会到词法分析阶段来搞这个事情,采用了非常粗暴的方式:直接读入源文件然后将里面的"\\\n"替换为空串,然后再开始编译,所以上面的代码其实等于:

cout << "hello \tony" << endl;

第一个反斜杠跟第二行的t连起来,就是tab符了。

4:还是字符串!

C语言以前有三字符换码序列,比如??=表示#等,不过现在很多编译器已经不想支持这种东东了,比如新的gcc会给出个warning,新标准好像也不打算支持了,据说是因为IBM的字符集和老的一些键盘没有#之类的字符,很多老代码是这种形式写的,这个特性的去留问题后面还引起争论,有大佬直接说你们换个新键盘就好啦。

5:C语言的sizeof是一个关键字!!!

sizeof是前缀单目运算符,而不是函数。

这意味着你可以直接写:

cout << sizeof 1 << endl;

然后,强制类型转换运算、指针解引用运算也是前缀单目运算符,而我们知道前缀单目运算符是右结合的,那么这个式子:

sizeof(int)*p
应该解释为:对指针p解引用,然后强制转换为int类型,然后取sizeof咯?哈哈哈

虽然逻辑严谨,但其实不是的,因为还有特殊规定:sizeof后面如果是一个强制类型转换的表达式,则必须加括号,所以不用担心,上面的代码是int的大小乘以p

最好还是给所有sizeof加上括号吧。。。

6:大家是不是都习惯用stdint.h中的int32_t这些类型了,很多资料也推荐用,但这些类型其实是optional的,就是说可能是不提供或缺失,例如ILP64模型下,就没有32位的整型,不过大部分平台还是有的!!!

关注它,

你就可以得到

很多你想要的C/C++

开发工具及学习视频资料

C/C++冷门知识点你知道多少呢?相关推荐

  1. java中可以用浮点作为循环变量吗_Java千问:Java循环语句的几个冷门知识点你都知道吗?...

    我们在进行Java开发的时候,经常会用到循环结构,但是有几个关于循环的"冷门"知识点,不知道你是不是都已经掌握了呢?我们一起来看看 一.大括号可以不写吗? 我们都知道,如果每次循环 ...

  2. php冷门知识,PHP程序员经常忽略的冷门知识点

    有些时候我们习惯了主流的方法,每一步都按部就班的写代码,殊不知,我们可能会遗漏一些好的想法和知识点,接下来我就谈谈那些容易呗忽略的php知识点. 1. array_filter函数,这个函数是通过回调 ...

  3. c语言冷门小知识,C/C++冷门知识点你知道多少呢?

    原创 zhellow 2019-10-15 在学习C语言的过程中,我们都自己总结了一些重要的知识点,但是有些不常用的冷门知识点可能就被我们选择性忘记了,你要不要来回一下呢? 1:int跟signed ...

  4. c语言冷门小知识,这些C/C++冷门知识点你知道多少呢?来看一下

    在学习C语言的过程中,我们都自己总结了一些重要的知识点,但是有些不常用的冷门知识点可能就被我们选择性忘记了,你要不要来回一下呢? 1:int跟signed int是一回事,short.long亦然,但 ...

  5. Delphi中的冷门知识点

    文章目录 前言 1.assert函数的用法 2.回车符与换行符 3.Sender关键字的妙用 4.nil.Assigned的用法通俗讲解 5.字节数组转换为字符串String 6.array[Bool ...

  6. python 冷门知识点_Python中的10条冷门知识

    下面时Python中一些不常见的冷门知识,感兴趣的小伙伴不妨来学习一下. 1.省略号也是对象 - 这是省略号,在Python中,一切皆对象.它也不例外.在 Python 中,它叫做 Ellipsis ...

  7. 大学计算机第四版冷门知识点总结,高校冷门专业大解析,不要小看任何一个“冷门专业”!...

    原标题:高校冷门专业大解析,不要小看任何一个"冷门专业"! 纵观历年来的高考志愿填报,让考生及家长最纠结的总共就那么两件事:一是院校优先还是专业优先:二是众多热门专业选哪个?足可看 ...

  8. 《你不知道的JavaScript(中卷)》读后笔记 —— JavaScript中“Number”的冷门知识点

    目录 1. Number.EPSILON 2. 整数的安全范围(Number.MAX_SAFE_INTEGER.Number.MIN_SAFE_INTEGER) 3. 整数检测(Number.isIn ...

  9. java冷门知识点整理

    Java基础知识整理 数据类型: == 和 !=: 两个new出来的Integer比较,如果值的范围介于-128和127之间,则比较Integer也能得到正确结果,其归功于Integer内部维护的In ...

最新文章

  1. Java语言学校的危险性(译文)
  2. android刷新时的圆形动画_【Android】圆形揭露动画
  3. vue中Ajax(axios)及Ajax(vue-resource)的使用方法
  4. vue 头部组件监控页面来源
  5. inx函数python_Python数据分析入门
  6. RayMarching1:用射线的方式画一个球
  7. centos创建本地yum仓库
  8. Atitit orm 之道 艾龙著 1. 一、ORM的由来 1 2. ORM的组成:      2 3.  常见的ORM框架:      3 4. 、ORM与数据持久化的关系 3 5. Atitit
  9. java计算机毕业设计九宫格日志网站源码+数据库+系统+lw文档+mybatis+运行部署
  10. Mybatis-plus最新代码生成器(3.5.1+)的使用
  11. KGB成功破解特朗普的秘密消息
  12. CCF CSP 中国计算机学会-CCF计算机软件能力认证(计算机水平测试)-简介-详情
  13. 三丈红尘,八千里风月
  14. Ubuntu 20.04 LNMP 环境编译安装
  15. Jetson nano 使用ROS 实现串口通信,并且解析通信协议(C++)
  16. python爬取ppt代码_Python爬取PPT模板小工具
  17. 系统学习机器学习之距离的度量(一)--常见距离
  18. R3DS Wrap基本使用方法
  19. 飞客茶馆-常旅客互助社区 - 飞客茶馆旅行网
  20. linux 运行ca.crt,linux下生成https的crt和key证书

热门文章

  1. OpenLiberty:注入时出错,适用于TomEE和Wildfly
  2. jdk8 calendar_JDK 8的Calendar.Builder
  3. java ee cdi_Java EE CDI bean范围
  4. java nio的演进_Java接口的防御性API演进
  5. maven 构建依赖树_Maven构建依赖项
  6. 卖家工具箱源码_我的测试和代码分析工具箱
  7. 每个Java开发人员都必须避免的9个安全错误
  8. Apache Camel日志组件示例
  9. 玩Java 8 – Lambda和并发
  10. 使用AspectJ审计Spring MVC Webapp。 第2部分