gpt4 book ai didi

c - 使用三元运算符进行数组初始化?

转载 作者:太空狗 更新时间:2023-10-29 17:01:32 24 4
gpt4 key购买 nike

我无权访问 C11 规范,因此无法调查此错误。

下面的声明会在编译时出错:

int why[2] =  1 == 1 ? {1,2} : {3,4}; 

错误是:预期表达式在 { 之前和:预期表达式在 :

最佳答案

这不是有效的 C11。

您只能使用初始化列表而不是表达式来初始化数组。

int why[2] = { ... };  // initializer-list {}

此外,1 == 1 ? {1,2} : {3,4} 不是有效的 C 表达式,因为 {1, 2} 不是 C 表达式。

仅对于使用复合文字的信息,您可以使用指针对象获得接近您想要的东西:

int *why = (1 == 1) ? (int[2]) {1,2} : (int[2]) {3,4};

关于c - 使用三元运算符进行数组初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15877560/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com