C++,那些可爱的小陷阱(三)
我们沿袭忠于标准的传统,还是首先来看一个标准中的例子
??=define arraycheck(a,b) a??(b??) ??!??! b??(a??)
这真是一段XE的代码,你看懂什么意思了么?好吧这次厚道点立刻上答案:
#define arraycheck(a,b) a[b] || b[a]
这个代码尽管是用来演示三元转义符的,但是我看到这个宏定义暗示另一个非常古怪的语法,在没有重载[]运算符的情况下,a[b]和b[a]总是完全等价的。所以在任何你使用了a[1]的时候,你都可以替换成1[a],尽管这看起来非常诡异。似乎这一点颇得标准编写者的喜爱,居然在一个完全无关的场合明里暗里地提了一下这个事情。
好吧我们言归正传,这些诡异的用法是C++的三元转义符,所幸它们数量不多,请看下表:
三元符 | 用以替代 | 三元符 | 用以替代 | 三元符 | 用以替代 |
??= | # | ??( | [ | ??< | { |
??/ | \ | ??) | ] | ??> | } |
??' | ^ | ??! | | | ??- | ~ |
int main()
{
//Isn't it right??????????????????????????????/
printf("Hello world!\n");
}
替代的 | 原有的 | 替代的 | 原有的 | 替代的 | 原有的 |
<% | { | and | && | and_eq | &= |
%> | } | bitor | | | or_eq | |= |
<: | [ | or | || | xor_eq | ^= |
:> | ] | xor | ^ | not | ! |
%: | # | compl | ~ | not_eq | != |
:% | ## | bitand | & |
from: http://www.cnblogs.com/winter-cn/archive/2009/11/19/1606479.html
C++,那些可爱的小陷阱(三)相关推荐
- C++,那些可爱的小陷阱(一)
此系列是为那些读过TC++PL或者具有类似水平的同学准备的,作为系列的第一篇以及有趣的热身,我们来看一个链接问题: D1.cpp #include <stdio.h> struct X { ...
- C++,那些可爱的小陷阱(二)
这一次,是关于声明的一个小问题: #include <stdio.h> int j = 24; int main() { int i = j, j; j = 42; ...
- 可爱的小老鼠计算机教案,大班语言儿歌教案《小老鼠玩电脑》
教学目标: 1.理解儿歌内容,学会说儿歌. 2.能运用手偶大胆表演儿歌. 3.体验说儿歌的乐趣. 4.让幼儿感受歌曲欢快的节奏. 5.培养幼儿的音乐节奏感,发展幼儿的表现力. 教学重点难点: 重点:理 ...
- ESXi与物理交换机静态链路聚合配置过程中的小陷阱
作者:陆斌 文章来自微信公众号:平台人生 内容简介:ESXi与物理交换机之间配置静态链路聚合时,因为静态链路聚合的特点,在进行down网卡和从虚拟交换机移除网卡的操作时,可能会无法完成故障流量切换,影 ...
- 计算机绘画小房子教案,可爱的小房子──《画方形和圆形》教学案例
一.教材.学情分析 本课是江苏省信息技术教材第11课<画方形和圆形>的教学内容,主要学习画椭圆.矩形.圆角矩形工具的使用方法.课本以画小房子为例,介绍了画椭圆.矩形.圆角矩形的步骤,有利于 ...
- 计算机可爱的企鹅教案,《可爱的小企鹅》教案
目标: 初步了解企鹅的外形特征及生活习性. 准备: 1.制作动画片.(一群姿态不一的企鹅在南极的雪地上嬉戏) 2.企鹅头饰若干.配班教师扮大企鹅. 3.企鹅标本一个. 过程: 1.幼儿观看动画片< ...
- 可爱的小海豚:MySQL 数据库
可爱的小海豚:MySQL 数据库 一.关系型数据库是什么 1.1 什么是数据库 本质上讲,数据库(Database,DB)是数据的集合,它具有统一的结构形式并存放于 统一的存储介质内,是多种应用数据的 ...
- 可爱的小老鼠计算机教案,中班美术《可爱的小老鼠》
中班美术<可爱的小老鼠> 发布时间:2017-04-09 成长目标1. 能掌握正确的剪贴方法.2. 发挥想象,尝试动手制作立体卡通动物造型.3. 体验气球塑形的乐趣. 重点 能掌握正确的剪 ...
- 一、让LCD显示可爱的小企鹅
一.让LCD显示可爱的小企鹅 还是先说说环境吧,处理器为S3C2410,linux的版本当然是2.6.20的.下面先说说怎样让LCD上显示出可爱的小企鹅.最直接的步骤如下(记住不要问为什么哈-_-,一 ...
最新文章
- uboot 如何设置网关地址_两种网络地址段,如何设置内网和外网一起上?
- 腾讯的人工智能大战已然打响!
- spring-security权限控制详解
- 【原】继承AbstractRoutingDataSource再通过AOP实现动态数据源切换
- Ch5302-金字塔【区间dp】
- 大蜘蛛序列号_Datacolor SpyderX 蓝蜘蛛 (红蜘蛛)校色仪 使用教程
- android电源管理
- brasb 密码自动应答
- 618秒杀抢不到?用Python完成毫秒级抢单,助你秒杀淘宝大单
- 对策《四川省本科毕业论文(设计)抽检实施细则》(二)专业能力
- python期权定价公式_美式期权BAW定价的Python3实现
- 水电图纸——简单看图-3
- python read()读取图片_可以python sitk.ReadImage读取列表/系列图像吗?
- 回顾Win10自带表情包快捷键
- Android程序员生活就是这么朴实无华,那真是穷的喝自来水
- linux下TC+HTB流量控制
- 分布式爬虫系统的设计与实现(SourceForge.net数据爬取)
- 鱼叉式网络钓鱼攻击——一份关于攻击动机、技术和预防方法的完整指南
- 程序员的五个开发神器助你更好的开发!
- 1行Python代码识别身份证信息,还能自动告警,YYDS
热门文章
- 规则引擎选型及应用 邴越 2017-04-27 16:31:17 浏览614 评论0 HTTPS 模块 配置 string exception void input 规则引擎 摘要: 规则引擎具体执
- 你能活多少岁,就让人工智能来告诉你吧
- “人工智能大脑”跳槽记:吴恩达所理解的智能
- 不热衷黄金、地产的美国人喜欢投资什么?
- Spring MVC源码 - 00开篇主题框架一览
- docker 配置加速器
- 注解@CrossOrigin解决跨域问题
- 数据结构简介以及抽象数据类型的实现
- python集合运算_python-集合及其运算
- python gevent缺点_python的flask框架结合gevent性能反而大幅度下降?