10
Q
字符串数组初始化
A
回答
6
在第一个示例中(char *hi = "hello";
),您正在创建一个非const指针,该指针被初始化为指向静态常量字符串“hello”。理论上这个指针可以指向任何你喜欢的东西。
在第二个示例(char hi[] = "hello";
)中,您明确定义了一个数组,而不是指针,所以它引用的地址是不可修改的。请注意,数组可以被认为是指向特定内存块的不可修改的指针。
你的第一个例子实际上在C++(我的编译器,至少)编译没有问题。
相关问题
- 1. 的C#初始化字符串数组
- 2. 初始化多朦字符串数组
- 3. 字符串数组的初始化字符串太长
- 4. 字符串初始化
- 5. 字符串初始化
- 6. Android字符串初始化
- 7. 初始化“的字符串”
- 8. GPS初始化字符串?
- 9. 谷歌测试:“字符数组的宽字符串初始化”
- 10. 字符数组的初始化字符串太长。在Xcode
- 11. 将字符串写入初始化空白字符数组
- 12. 初始化字符串的字符数组太长
- 13. 字符数组未正确初始化
- 14. 初始化整个字符数组
- 15. 未初始化的字符数组
- 16. 初始化字符数组 - C和C++
- 17. 动态初始化字符数组
- 18. C++ strlen()初始化字符数组
- 19. 初始化宽字符数组
- 20. 结构数组初始化和字符串文字
- 21. 用字节和字符串初始化C数组
- 22. 正在初始化数据引用的字符串数组
- 23. 初始化“数组字段”
- 24. 错误:字符串数组的初始化字符串太长C++
- 25. ReDim语句是否使用空字符串初始化字符串数组?
- 26. 在VB.NET中声明并初始化一个字符串数组
- 27. 如何初始化数组的指针为字符串构造
- 28. 用\ 0初始化字符串数组0
- 29. 初始化程序集中的字符串数组
- 30. 初始化一个二维数组的字符串
谢谢。有没有办法使用const关键字来使第一段代码工作? – lang2
@ lang2不在该范围内。看这[C常见问题](http://c-faq.com/ansi/constasconst.html)。甚至不用'char * const hi'(常量指向字符的指针)。 – cnicutar
只是添加了一些东西,我不确定它是否会工作......你的第一个版本在C++中编译好 - 我会在C编译器的时候尝试一下:) – icabod