【发布时间】:2012-09-14 12:54:37
【问题描述】:
给定一个指向字符串字面量的指针数组:
char *textMessages[] = {
"Small text message",
"Slightly larger text message",
"A really large text message that "
"is spread over multiple lines"
}
如何确定特定字符串文字的长度 - 比如说第三个?我尝试使用 sizeof 命令如下:
int size = sizeof(textMessages[2]);
但结果似乎是数组中指针的数量,而不是字符串字面量的长度。
【问题讨论】:
-
sizeof(textMessages[2])将产生char*类型的大小。sizeof(char*)在您的系统上恰好是 4,这纯属巧合,与您数组中的元素数量无关。 -
您应该考虑为您的阵列使用定义
static const char textMesssages[][4]。 -
@MichaelFoukarakis 数组中只有 三个 指针(注意字符串连接)。
-
@Jens:哦,好吧,我的观点并不在于数字的选择,尽管我主张有一个哨兵值。