【发布时间】:2011-10-31 00:46:51
【问题描述】:
假设我有一个操作二维数组的函数,它从主函数接收指向二维数组的指针作为其参数。
现在,我想修改(假设每个元素加 10)二维数组的每个元素。
我有兴趣了解使用给我的单个指针遍历二维数组并返回新修改数组的指针。
粗略结构
假设指针a包含二维数组的初始地址。
int add_10(int *a)
{
int i, j,
b[M][N] = {0};
for(i = 0; i < M; i++)
for(j = 0; j < N; j++)
b[i][j] = 10 + a[i][j];
}
【问题讨论】:
-
尝试在堆栈溢出时搜索“二维数组 c”。你可能找到一些答案。
-
这取决于你是否有指向数组的指针(
int (*a)[N])),或者指向 int 的指针(int**);你必须相应地声明你的函数。不过,a[i][j]的语法在这两种情况下是相同的。