使用以下代码初始化指向整数的指针:
int a[] = {1,2,3};
int * p= a;
我的问题是为什么下面的单行不起作用,如果有另一种方式。
int *p = &{1,2,3};
注意:关于代码的最佳效果或最佳可读版本,此问题不。这只是为什么一个非常相似的代码无法正常工作。
答案 0 :(得分:2)
绝对没有理由不像你已经做的那样在2行代码中做到这一点。它清晰可读。
如果你必须为了它而复杂化,你可以写一个复合文字:
int* p = (int[]){1,2,3};
这将产生与您已有的代码完全相同的机器代码,因此没有版本比另一个更好。