这是一个我无法找到正确答案的快速问题。
如果我想声明一个const文本变量,它绝对等于do:
const char my_variable [] = {'t', 'e', 's', 't', 0};
或
const char my_variable [] = "test";
非常感谢提前
答案 0 :(得分:5)
是的,这两个声明是相同的。
"test"
是C中的char[5]
类型,其中包含元素't'
,'e'
,'s'
,'t'
和{{1} }。
(请注意,在C ++中,类型为0
:两种语言之间存在另一种差异。请参阅What is the type of string literals in C and C++?)。
答案 1 :(得分:2)
来自standard 6.7.9p14 :(支持其他答案)
字符类型数组可以由字符串文字或UTF-8字符串文字初始化,可选择用大括号括起来。字符串文字的连续字节(如果有空间或数组大小未知,则包括终止空字符)初始化数组的元素。
所以是的,他们两个都在实现同样的目标。