c - 在 char 赋值表达式中使用反斜杠字符 (\)
问题描述
char C = '\1'
int I = -3
printf("%d", I * C);
输出:
-3
嗨,我刚刚在我的练习书中看到了这种奇怪的语法,但它并没有详细说明它是什么以及它的用法。1
为什么引号旁边有反斜杠?有'\1'
什么不同'1'
吗?如果是这样,为什么结果I * C
与 1 * 3 相同?谢谢
解决方案
'1'
是字符“1” 。现在大多数平台都使用ASCII将字符转换为字节——'1'
在 ASCII 中是49
十进制或0x31
十六进制的整数。
\nnn arbitrary octal value byte nnn
八进制转义序列有 3 个八进制数字的限制,但如果更早遇到,则在第一个不是有效八进制数字的字符处终止。
是十六进制或十进制整数'\1'
。在 ASCII 中,它是一个字符——标题的开始。0x1
1
SOH
这:
char C = '\1';
相当于:
char C = 1;
推荐阅读
- vb.net - 安装文件失败调试启用
- android - ExoPlayer 初始化播放器已弃用
- javascript - 如何合并来自两个相同长度的不同数组的对象?
- react-native - 术语“gradlew”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称
- reactjs - 如何将 ArrayBuffer 转换为 blob,以便将其转换为 URL 以进行视频播放
- rust - 在 Bevy 中读取鼠标点击的位置
- tls1.3 - DNSSEC 是否允许 TLS 快捷方式?
- qt - qml 中的索引数组
- python-3.x - 比较python中具有不同数据集的两个csv文件
- python - 尝试在 python (Ubuntu 18.04) 中导入 cv2 时收到并导入错误