gpt4 book ai didi

c++ - sizeof(str -1) 和 sizeof(str) -1 之间的区别?

转载 作者:太空狗 更新时间:2023-10-29 23:28:36 24 4
gpt4 key购买 nike

我在网上遇到过 sizeof(str -1) 几次,但我自己从未使用过。我只是好奇 sizeof(str-1) 和 sizeof(str) -1 之间有什么区别,其中 str 是字符数组 say char str[] = "Hello";

最佳答案

sizeof(str) 是数组 str 的大小。在这种情况下,这是 6(包括 nul 终止符)。所以 sizeof(str)-1 是 5(它不包括 nul 终止符)。

str-1 在 C 中具有类型 char*,在 C++ 中具有类型 const char*,因为数组到指针衰减。所以 sizeof(str-1) 是指向字符的指针的大小。它与用于定义 str 的特定字符串的长度无关。

顺便说一句,计算 str-1 是未定义的行为。方便的是 sizeof 不计算它的操作数,所以这不是问题。

关于c++ - sizeof(str -1) 和 sizeof(str) -1 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9887889/

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