gpt4 book ai didi

c - 空终止的 const char* 的 sizeof

转载 作者:太空狗 更新时间:2023-10-29 16:28:14 25 4
gpt4 key购买 nike

const char* a;

如何确保字符串 'a' 以空值终止?当 a = "abcd"并且我执行 sizeof(a) 时,我得到 4。这是否意味着它不是以 null 结尾的?如果是,我会得到 5 个?

最佳答案

sizeof(a) 给出指针的大小,而不是指针指向的字符数组的大小。这与您所说的 sizeof(char*) 相同。

您需要使用 strlen() 来计算空终止字符串的长度(注意返回的长度包括空终止符,所以 strlen("abcd") 是 4,而不是 5)。或者,您可以使用字符串文字初始化数组:

char a[] = "abcd";
size_t sizeof_a = sizeof(a); // sizeof_a is 5, because 'a' is an array not a pointer

字符串文字 "abcd" 以 null 结尾;所有字符串文字都以 null 结尾。

关于c - 空终止的 const char* 的 sizeof,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4054284/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com