gpt4 book ai didi

C++ strlen(ch) 和 sizeof(ch) strlen

转载 作者:太空宇宙 更新时间:2023-11-04 05:03:47 27 4
gpt4 key购买 nike

我有这个代码:

int main()
{
char ch[15];
cout<<strlen(ch)<<endl; //7
cout<<sizeof(ch)<<endl; //15
return 0;
}

为什么 strlen(ch) 即使是空的 char 数组也会给出不同的结果?

最佳答案

您的代码有未定义的行为,因为您正在使用strlen 读取数组的未初始化值。如果你想从 strlen 得到确定的结果,你必须初始化(或分配)你的数组。

例如

char ch[15] = "Hello, world!";

char ch[15] = {};

sizeof 将给出其操作数的大小,因为 char 的大小根据定义是一个 char[15] 的大小永远是 15。

strlen 给出空终止字符串的长度,它是给定 中第一个值为 0char 的偏移量char 数组。要使对 strlen 的调用有效, 的参数实际上必须指向一个空终止字符串。

关于C++ strlen(ch) 和 sizeof(ch) strlen,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11930366/

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