【发布时间】:2014-11-07 10:33:39
【问题描述】:
为什么int*数组不能直接初始化,而char*数组可以?
我知道它们不一样,但是导致这种情况发生的确切区别是什么(请解释原因)?
我知道为什么不能直接初始化int* p[]。
不知道char* name[]怎么可能?
例如:
char* name[] = { "Mostafa Chamran", "Mehdi Zeinoddin", "Ebrahim Hemmat" };
和
int* p[3] = {1, 2, 3};
给出错误:无效转换
我不知道要搜索什么才能找到相关问题,所以我不知道是否存在相同的问题
【问题讨论】:
-
因为
"string literal like this"是const char *但数字常量不是int *s -
根据 T.J. Crowder 他们是 const char (no *)
-
const char[]与const char *相同。只是在声明变量的时候不同 -
@user3783574:字符串文字是
const char[x],而不是const char。例如,"foo"是const char[4]。const char[z]可转换为char*。 -
@user3783574:
const char[x]不是char *,但可以隐式转换为它(“隐式”=“没有实际写一些东西说'做这个转换')。