对于下面的示例(来自mysql源代码),它使用Field **field。我很难把它想成一个二维数组的Field。
typedef struct st_table_share
{
.......
Field **field;
....
}
for (Field **field=table->field ; *field ; field++)
{
... 我可以这样认为吗?一个表包含许多行,而一行包含多个列/字段。那么*field表示一行,**field表示表?
如果这是真的,那么对于以下代码
for (Field **field=table->field ; *field ; field++)它将在*field为null时退出,那么如果*field是一行,那么*field怎么可能是null。或者我可以说,如果一行有5列,field是第一列,那么field+4是最后一列字段,field+5是列的末尾,这意味着null,所以for循环将退出?
发布于 2011-05-27 15:18:24
如果一行有5列,
是第一列,那么field+4就是最后一列
是的,但是,你可以这么说
和field+5是列的末尾,这意味着空值
仅当您将数组初始化为null终止时。
如果知道表中有多少列,就可以迭代到最后一列,而不是; *field ;。
https://stackoverflow.com/questions/6148897
复制相似问题