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

如何在C语言中创建引用已有二维数组的数组的数组

如何用C语言组合两个二维WCHAR数组为allUnits数组

要实现你需要的访问行为,核心是利用数组退化特性——二维数组在表达式中会自动退化为指向其第一维元素的指针(也就是指向一维数组的指针)。

因为depthUnits和speedUnits的第二维长度都是10([10]),我们可以定义allUnits为一个指向长度为10的WCHAR数组的指针数组,具体代码如下:

// 原有的两个二维WCHAR数组
WCHAR depthUnits[2][10] = { _T("feet"), _T("metres") };
WCHAR speedUnits[3][10] = { _T("ft/min"), _T("m/min"), _T("m/s") };

// 定义allUnits数组,元素是指向WCHAR[10]的指针
WCHAR (*allUnits[])[10] = { depthUnits, speedUnits };

验证访问行为

这样定义后,就能按照需求实现访问:

  • allUnits[0][0] 等价于 depthUnits[0],即_T("feet")
  • allUnits[0][1] 等价于 depthUnits[1],即_T("metres")
  • allUnits[1][0] 等价于 speedUnits[0],即_T("ft/min")
  • allUnits[1][1] 等价于 speedUnits[1],即_T("m/min")
  • allUnits[1][2] 等价于 speedUnits[2],即_T("m/s")

补充说明

如果两个二维数组的第二维长度不同,这种方式会失效,但你的场景中两者第二维均为10,完全适用。另外_T宏用于兼容ANSI和Unicode编译环境,保持代码一致性即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 12:10:50