gpt4 book ai didi

c++ - 可以使用static_const (),std::as_const()或static_cast ()声明数组吗?

转载 作者:行者123 更新时间:2023-12-02 09:56:39 26 4
gpt4 key购买 nike

我尝试了三个连续的行(每个单独一个),但是没有一个起作用。
为什么??

int main()
{
size_t j{8};


char arr[static_cast<const size_t>(j)]={'t'};
char arr[static_const<size_t>(j)]={'t'};
char arr[std::as_const(j)]={'t'};


arr[7]='\0';
std::cout<<arr;


return 0;
}

最佳答案

您的3个示例都不是编译时的常量,因为j,直到运行时才分配值。强制转换j不会改变它。

要在编译时分配j,您需要将其声明为const(或C++ 11及更高版本中的constexpr),然后可以按原样使用j声明数组:

int main()
{
const size_t j{8};
// or: constexpr size_t j{8};

char arr[j]={'t'};

arr[7]='\0';
std::cout<<arr;

return 0;
}

关于c++ - 可以使用static_const <size_t>(),std::as_const()或static_cast <const size_t>()声明数组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59547953/

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