Gha*_*ani 0 c++ arrays pointers declaration function-declaration
我有一个static-char 数组定义为:
static const char city_names[1000][4][50];
Run Code Online (Sandbox Code Playgroud)
我想从函数返回一个指向这个变量的指针,我尝试 a static_casttovoid*但它失败了。我怎样才能返回一个指针char[][][]?
一个指向数组的指针(更准确地说是指向数组的第一个元素,如果你用数组初始化它)可以像这样声明
static const char city_names[1000][4][50];
const char ( *p )[4][50] = city_names;
Run Code Online (Sandbox Code Playgroud)
所以返回这样一个指针的函数声明看起来像
const char ( *f( /* some parameters */ ) )[4][50];
Run Code Online (Sandbox Code Playgroud)
在函数中你可以只写
return city_names;
Run Code Online (Sandbox Code Playgroud)
也就是说,如果你有一个数组声明如下
T a[N1][N2][N3];
Run Code Online (Sandbox Code Playgroud)
其中 T 是某种类型说明符,N1、N2、N3 是指定数组大小的常量,那么您可以重写如下声明
T ( a[N1] )[N2][N3];
Run Code Online (Sandbox Code Playgroud)
要获得指向数组元素类型的指针,只需将记录( a[N1] )替换为指针声明符,例如
T ( *p )[N2][N3] = a;
Run Code Online (Sandbox Code Playgroud)