【发布时间】:2020-12-28 12:20:52
【问题描述】:
为什么第一个声明有效而另一个无效?
char* string[2] = { "Hello", "Bellow" };
int* b[2] = { {1,2,3}, {2,3,4} };
【问题讨论】:
-
因为在第一个中,(字符串文字)数据解析为指针类型。第二种,数据不是指针,定义应该是
int b[2][3] -
有一个更简单的版本可以显示您所说的行为。只是一个指针,不需要数组来显示它。
const char *foo="blabla"; int *thisDoesNotWork={1,2,3,4}; -
我知道,但为什么我无法理解
-
你问为什么语言设计者做出他们所做的决定?