You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否通过如下语法创建匿名二维字符数组?

关于匿名二维字符数组的创建语法问题

你给出的第一段代码存在语法错误,无法通过这种写法创建匿名二维字符数组。错误出在类型转换的写法上,(*char[])不符合C语言的语法规范,正确的匿名字符指针数组初始化写法应该把完整类型放在括号里,修改后如下:

char **values = (char*[]){"aaa", "bbb", "ccc"};

这里(char*[])是合法的强制类型转换,将匿名的字符指针数组转换为char**类型(数组名在表达式中会隐式退化为指向首元素的指针,和char**类型兼容),这样就能完成匿名数组的赋值操作。

而你提供的第二种实现方法是完全可行的:

char **values;
char *tmp[] = {"aaa", "bbb", "ccc"};
values = tmp;

原因是tmp是char*类型的数组,当把它赋值给values时,数组名tmp会自动转换为指向数组第一个元素的指针,也就是char**类型,和values的类型完全匹配,因此这个赋值操作是合法的。

内容的提问来源于stack exchange,提问作者bartool

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 05:16:07