它如何打印具有两个取消引用的 3D 数组的元素。 我认为它需要类似 3 个取消引用printf("%c",*(*(*(a+0)+1)+1));
的东西. 有理解危机。
int main()
{
char a[2][3][3] = {'a','b','c','d','e','f','g',
'h','i','j','k','l','m'};
printf("%s ", **a);
getchar();
return 0;
}
为指定的%s
提供的参数应该是一个指针。对于 '%s,
printfuses the pointer to fet characters from memory. Therefore, for a three-dimensional array, applying two
*to the name results in the correct type, a pointer to
char'。
对于%c
,参数应该是带有字符值的int
。对阵列应用三个*
即可实现此目的。
注意:虽然**a
为%s
提供了正确的类型,但该参数应该指向以 null 结尾的一维字符串中的字符。允许字符跨数组维度继续是狡猾的。