作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
为什么 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/
为什么 int* ptr_arr_int = {1,2}; 给出编译器错误,而 char* ptr_arr_char = "amruth"; 编译正常? int* ptr_arr_int = {1,2
我是一名优秀的程序员,十分优秀!