【发布时间】:2017-12-06 04:10:33
【问题描述】:
我正在阅读这段 C 代码,我发现很难理解发生了什么。
这是数组:
static const char gradient[32][4] =
{
{ 1, 1, 1, 0}, { 1, 1, 0, 1}, { 1, 0, 1, 1}, { 0, 1, 1, 1},
{ 1, 1, -1, 0}, { 1, 1, 0, -1}, { 1, 0, 1, -1}, { 0, 1, 1, -1},
{ 1, -1, 1, 0}, { 1, -1, 0, 1}, { 1, 0, -1, 1}, { 0, 1, -1, 1},
{ 1, -1, -1, 0}, { 1, -1, 0, -1}, { 1, 0, -1, -1}, { 0, 1, -1, -1},
{-1, 1, 1, 0}, {-1, 1, 0, 1}, {-1, 0, 1, 1}, { 0, -1, 1, 1},
{-1, 1, -1, 0}, {-1, 1, 0, -1}, {-1, 0, 1, -1}, { 0, -1, 1, -1},
{-1, -1, 1, 0}, {-1, -1, 0, 1}, {-1, 0, -1, 1}, { 0, -1, -1, 1},
{-1, -1, -1, 0}, {-1, -1, 0, -1}, {-1, 0, -1, -1}, { 0, -1, -1, -1},
};
它是 32*4,这是试图访问这个数组的另一部分代码:
const char * g0000 = gradient[Indice (x1, y1, z1, t1)];
Indice 是一个返回 int 的函数。那么这个g0000 是什么(我知道它是一个指针),比如说Indice 返回1,那么g0000 的值是多少?我主要用 C# 编写代码,据我了解,如果你想访问多维数组,你需要几个参数,但这里只有一个,我真的很困惑......
【问题讨论】:
-
如果
A是一个二维数组,那么A[n]是数组的第n行(从0开始) -
@M.M 有道理,谢谢!
-
那是一些非常的垃圾代码。首先表格应该输入signed char!! 那个代码的作者应该去写Visual Basic。