【发布时间】:2015-11-29 13:33:10
【问题描述】:
我想交换两个包含二维数组的变量。我相信这可以通过交换他们的指针来简单地完成。我试过这段代码,但它不起作用,我不知道为什么,也许我没有正确理解指针。
#include <stdio.h>
void swap(int ***a, int ***b) {
int ** temp = *a;
*a = *b;
*b = temp;
}
int main(void) {
int a[10][10];
int b[10][10];
a[1][5] = 4;
b[1][5] = 2;
printf("%d, %d\n", a[1][5], b[1][5]);
swap(&b, &a);
printf("%d, %d\n", a[1][5], b[1][5]);
return 0;
}
这个输出
4, 2
4, 2
我希望它能输出
4, 2
2, 4
那么,我做错了什么?
【问题讨论】:
-
我的眼睛里有星星。。如果你需要一个函数来交换两个指针,你只需要在参数上加一颗星,不管指针的目标是什么。
标签: c arrays pointers multidimensional-array