为什么它会起作用?
这是偶然发生的,因为整数是以小端字节顺序存储的。
整数
97
以8字节的形式存储在内存中
0x61 0x00 0x00 0x00 0x00 0x00 0x00 0x00
并且在
write(1, &alpha, 1)
,该内存位置的地址为
传递给
write
系统调用。自上一个参数以来(
nbyte
)
为1,则该内存地址的第一个字节写入
标准输出:即
0x61
或
97
,字母的ASCII码
a
。
但在Swift中,我无法将整数赋给字符或字符串类型的变量。
Swift等价于
char
是
CChar
,是的类型别名
Int8
:
var alpha: CChar = 97
这是一个不依赖内存布局和
也适用于非ASCII字符:
let first: UnicodeScalar = "α"
let last: UnicodeScalar = "Ï"
for v in first.value...last.value {
if let c = UnicodeScalar(v) {
print(c, terminator: "")
}
}
print()
// αβγδεζηθικλμνξοÏÏÏÏÏÏ
ÏÏÏÏ