更具体地说,我正在努力理解为什么这会在编译中失败:
int array[] = {4, 3, 2, 1};
typeof(array) __array_copy = (array);
错误是:
main.c: In function 'test_map':
main.c:113: error: invalid initializer
然而这有效:
int array[] = {4, 3, 2, 1};
typeof(*array) *__array_copy = (array);
typeof(array)
与typeof(*array) *
之间究竟有什么区别?