解释字符串文字
interpreting string literal
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中尝试)。
相关文章:
- 我可以使用条件运算符初始化C风格的字符串文字吗
- 如何使用字符串文字作为宏参数
- 有没有办法从非C/C++文件中读取C++原始字符串文字的内容
- 构造<int>具有 2 个字符串文字的向量
- 初始化或分配空字符串文字到指向 C 中的 char 的指针或指向 C++ 中 const char 的指针的原因是什么
- 方便地对C++中的所有字符串文字进行模糊处理
- 比较 std::string 和 C 样式字符串文字
- 如何从char16_t字符串文字中读取双精度?
- 如何在 C 宏中将变量字符串与文字字符串连接起来?
- 我如何知道 boost::any 是否包含文字字符串
- C 专用模板功能接收文字字符串
- 如何使变量成为文字字符串
- 可以一个#define一个文字字符串,其中包含用于资源文件的非ANSI字符的字符串
- 从文字字符串生成编译时常量整数
- 当一个函数可以被赋予一个 char* 或文字字符串时,声明这个函数的正确方法是什么?
- 如何在 C 或C++宏中使用函数作为文字字符串
- GCC中可能的错误:结构中的文字字符串类型
- 文字字符串有效,但字符串在 file.open() 中不起作用
- C/C++:文字字符串中"xNNN"格式的固有歧义
- constexpr函数中声明为静态的文字字符串