字符串数组的定义问题

char str[3][32] = {"to be or not to be",
"is the",
"question!!!"}
这个数组有三个字符串 编译的时候 是每个字符串后面有'\0' 还是只有最后一个“question\0”
最新回答
无人懂我

2024-11-06 07:47:24

双引号括起的一串字符就是一个 “字符串常量”,它的结尾处就隐含了字符串结束符 '\0'
所以你3个 “字符串常量”,各有一个 '\0', 就共有3个。
每个 字符串常量 的长度 都在 [32] 范围以内,所以 char str[3][32] 搁得下它们。
詯啲笶♀昻贵

2024-11-06 02:16:05

c语言约定:字符串用"括起来,由编译程序自动在双引号括起来的字符最后添加一个0,如"is the"实际上需要占用的字符数为7个。相当于你写{ 'i','s',' ','t','h','e',0 },就是因为这样写字符串既不好读又麻烦所以才引入用双引号形式写的格式。
眼泪的名字

2024-11-06 08:05:19

都有