解释字符串文字

interpreting string literal

本文关键字:文字 字符串 解释      更新时间:2023-10-16

i的方法需要 const unsigned char *作为参数,例如

func(const unsigned char* p);

我这样称呼为: func("x34x21x00x00");(小恩迪安(Little Endian)中的值是十进制的8500)。

我的问题是为什么我可以通过"x34x21x00x00"作为char*

让我简要说明,如果我错了,请纠正我。

传递给函数的内容是字符串" x34 x21 x00 x00"的第一个字节的地址。字符串" x34 x21 x00 x00" 存储在内存中,基本上我传递了该字符串的第一个字节的地址。我是对的吗?

是的,你是对的。字符串包含什么都没关系 - 您正在传递其第一个字节的地址。

这在C中是合法的,指针将被隐式施放。在C 中,尽管这会出现错误(刚刚在MSVC2010中尝试)。