c++ - 输出是如何计算的?
问题描述
cout<<"dbba" - "bcx";
这里的输出是 C++ 中的 -5。
我想知道这里的输出是如何计算的?
解决方案
代码的行为是未定义的。
字符串文字分别是类型const char[5]
和const char[4]
。这些衰减为const char*
指针,因为它们是二元运算符的参数-
。
计算两个指针之间的差异是未定义的,除非它们指向同一数组中的元素(或数组最后一个元素之外的元素)。在这种情况下,可以将对象视为单元素数组。
推荐阅读
- c# - 拆分我的 SQL 类以支持多连接和存储过程
- java - junit 测试用例中使用 preAuthorize 注释到通过 Jhipster 生成的 api 所需的更改
- javascript - Electron App - 将主进程分成几个文件并共享变量
- reactjs - 使用 auth0 的 localhost 上的 Samesite cookie 错误
- python - Tkinter - 在某些条件下启用/禁用条目小部件
- c - 为什么内存用户空间顶部的指令地址与linux进程内存布局相反?
- java - GroovyShell 线程安全
- java - 在目录路径 java 中找不到 jconsole
- android - Android数据绑定不能在里面
用于 zxing-android-embedded - c++ - 如何在不使用循环的情况下从 ITK 图像中获取数组?