【发布时间】:2022-01-04 23:28:23
【问题描述】:
如何从指向字符串的指针数组中找到字符串的长度。例如,如果我想找到字符串“apple”的长度,那么我该如何计算它的长度。我尝试了很多方法,但我做不到,如果我做 sizeof(str[0]) 它返回指针的大小(我的 32 位设备中的 4 个字节),我想知道它们是否存储在彼此相邻的内存位置还是不行?
const char *str[] = {
"apple", "ball", "cat", "dog", "mep", "helsdf"
};
【问题讨论】:
-
它们可能彼此相邻,也可能不相邻。它们可以按任何顺序排列,字符串之间可以有任意数量的字节。编写 C 时,代码的设计应使您无需知道也不关心字符串文字的存储位置。
-
听起来您在问不同且不相关的问题。每个字符串的长度是明确定义的,但它不会告诉您它们在内存中是否相邻。另外,为什么你想知道它们在内存中是否相邻? (无所事事的好奇心是一个完全正当的理由;我想不出另一个理由。)
标签: arrays c string pointers string-length