为什么int*数组不能直接初始化但char*数组可以?

use*_*574 0 c++ arrays pointers

为什么int*数组不能直接初始化,但char*数组可以?我知道它们不一样,但导致这种情况发生的确切差异是什么(请解释原因)?

我知道为什么不能int* p[]直接初始化.
我不知道怎么可能char* name[]

例如:

char* name[] = { "Mostafa Chamran", "Mehdi Zeinoddin", "Ebrahim Hemmat" };
Run Code Online (Sandbox Code Playgroud)

int* p[3] = {1, 2, 3};
Run Code Online (Sandbox Code Playgroud)

给出错误:转换无效

我不知道要搜索什么来查找相关问题,所以我不知道是否存在相同的问题

Cap*_*ffe 5

后一个表达式是一个指针数组.该错误表示您正在将int转换为int*.

表达应该是

int arr[3]={1, 2, 3};
Run Code Online (Sandbox Code Playgroud)

  • @ user3783574:因为[字符串文字的类型是"const char`数组"](http://stackoverflow.com/a/15508173/157247),它可以隐式地转换为`char*`. (2认同)