C/C++冷门知识点你知道多少呢?
在学习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++冷门知识点你知道多少呢?相关推荐
- java中可以用浮点作为循环变量吗_Java千问:Java循环语句的几个冷门知识点你都知道吗?...
我们在进行Java开发的时候,经常会用到循环结构,但是有几个关于循环的"冷门"知识点,不知道你是不是都已经掌握了呢?我们一起来看看 一.大括号可以不写吗? 我们都知道,如果每次循环 ...
- php冷门知识,PHP程序员经常忽略的冷门知识点
有些时候我们习惯了主流的方法,每一步都按部就班的写代码,殊不知,我们可能会遗漏一些好的想法和知识点,接下来我就谈谈那些容易呗忽略的php知识点. 1. array_filter函数,这个函数是通过回调 ...
- c语言冷门小知识,C/C++冷门知识点你知道多少呢?
原创 zhellow 2019-10-15 在学习C语言的过程中,我们都自己总结了一些重要的知识点,但是有些不常用的冷门知识点可能就被我们选择性忘记了,你要不要来回一下呢? 1:int跟signed ...
- c语言冷门小知识,这些C/C++冷门知识点你知道多少呢?来看一下
在学习C语言的过程中,我们都自己总结了一些重要的知识点,但是有些不常用的冷门知识点可能就被我们选择性忘记了,你要不要来回一下呢? 1:int跟signed int是一回事,short.long亦然,但 ...
- Delphi中的冷门知识点
文章目录 前言 1.assert函数的用法 2.回车符与换行符 3.Sender关键字的妙用 4.nil.Assigned的用法通俗讲解 5.字节数组转换为字符串String 6.array[Bool ...
- python 冷门知识点_Python中的10条冷门知识
下面时Python中一些不常见的冷门知识,感兴趣的小伙伴不妨来学习一下. 1.省略号也是对象 - 这是省略号,在Python中,一切皆对象.它也不例外.在 Python 中,它叫做 Ellipsis ...
- 大学计算机第四版冷门知识点总结,高校冷门专业大解析,不要小看任何一个“冷门专业”!...
原标题:高校冷门专业大解析,不要小看任何一个"冷门专业"! 纵观历年来的高考志愿填报,让考生及家长最纠结的总共就那么两件事:一是院校优先还是专业优先:二是众多热门专业选哪个?足可看 ...
- 《你不知道的JavaScript(中卷)》读后笔记 —— JavaScript中“Number”的冷门知识点
目录 1. Number.EPSILON 2. 整数的安全范围(Number.MAX_SAFE_INTEGER.Number.MIN_SAFE_INTEGER) 3. 整数检测(Number.isIn ...
- java冷门知识点整理
Java基础知识整理 数据类型: == 和 !=: 两个new出来的Integer比较,如果值的范围介于-128和127之间,则比较Integer也能得到正确结果,其归功于Integer内部维护的In ...
最新文章
- Java语言学校的危险性(译文)
- android刷新时的圆形动画_【Android】圆形揭露动画
- vue中Ajax(axios)及Ajax(vue-resource)的使用方法
- vue 头部组件监控页面来源
- inx函数python_Python数据分析入门
- RayMarching1:用射线的方式画一个球
- centos创建本地yum仓库
- Atitit orm 之道 艾龙著 1. 一、ORM的由来	1 2. ORM的组成: 	2 3. 常见的ORM框架: 	3 4. 、ORM与数据持久化的关系	3 5. Atitit
- java计算机毕业设计九宫格日志网站源码+数据库+系统+lw文档+mybatis+运行部署
- Mybatis-plus最新代码生成器(3.5.1+)的使用
- KGB成功破解特朗普的秘密消息
- CCF CSP 中国计算机学会-CCF计算机软件能力认证(计算机水平测试)-简介-详情
- 三丈红尘,八千里风月
- Ubuntu 20.04 LNMP 环境编译安装
- Jetson nano 使用ROS 实现串口通信,并且解析通信协议(C++)
- python爬取ppt代码_Python爬取PPT模板小工具
- 系统学习机器学习之距离的度量(一)--常见距离
- R3DS Wrap基本使用方法
- 飞客茶馆-常旅客互助社区 - 飞客茶馆旅行网
- linux 运行ca.crt,linux下生成https的crt和key证书
热门文章
- OpenLiberty:注入时出错,适用于TomEE和Wildfly
- jdk8 calendar_JDK 8的Calendar.Builder
- java ee cdi_Java EE CDI bean范围
- java nio的演进_Java接口的防御性API演进
- maven 构建依赖树_Maven构建依赖项
- 卖家工具箱源码_我的测试和代码分析工具箱
- 每个Java开发人员都必须避免的9个安全错误
- Apache Camel日志组件示例
- 玩Java 8 – Lambda和并发
- 使用AspectJ审计Spring MVC Webapp。 第2部分