gpt4 book ai didi

c++ - 为什么 int* ptr_arr_int = {1,2};在 C/C++ 中不起作用?

转载 作者:可可西里 更新时间:2023-11-01 18:40:24 25 4
gpt4 key购买 nike

为什么 int* ptr_arr_int = {1,2}; 给出编译器错误,而 char* ptr_arr_char = "amruth"; 编译正常?

int* ptr_arr_int = {1,2};         // ->ERROR
char* ptr_arr_char = "amruth"; // ->OK

最佳答案

"amruth" 在 C++ 中是一个 const char[7] 类型,在 C 中是一个 char[7] 类型(尽管尝试修改字符串的行为未定义)。

在某些情况下,这可以退化const char*char* 类型,例如您的情况。

尽管 int[2] 在某些情况下会类似地衰减为 int*,但 {1, 2} 既不是 int[2]const int[2] 类型;相反,它是一个大括号初始化器

关于c++ - 为什么 int* ptr_arr_int = {1,2};在 C/C++ 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56848965/

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