我想知道:
这是我写的代码:
#include <stdio.h>
#include <stdlib.h>
#define N 4
int main(int argc, char const *argv[]) {
int i;
int *t[N];
int tab1[N] = {1, 2, 3, 4},
tab2[N] = {5, 6, 7, 8},
tab3[N] = {9, 10,11, 12},
tab4[N] = {13, 14, 15, 16};
for (i = 0 ; i < N; i++) {
*t[i] = tab1[i];
}
for (i = 0; i < N; i++) {
printf("%d\n", *t[0]);
}
}
当我跑步时,什么也没发生。
fogang@les-tatates:~/tp_304$ gcc -o test test.c
fogang@les-tatates:~/tp_304$ test
fogang@les-tatates:~/tp_304$
答案 0 :(得分:1)
当我跑步时,什么也没发生。
fogang@les-tatates:~/tp_304$ gcc -o test test.c fogang@les-tatates:~/tp_304$ test fogang@les-tatates:~/tp_304$
要运行位于当前工作目录内的名为test
的程序,请执行以下操作:
fogang@les-tatates:~/tp_304$ ./test
答案 1 :(得分:0)
根据您发布的各种评论,我猜(我真的在这里猜测)您可能想要这样:
#include <stdio.h>
#include <stdlib.h>
#define N 4
int main(int argc, char const *argv[]) {
int *t[N];
int tab1[N] = { 1, 2, 3, 4 },
tab2[N] = { 5, 6, 7, 8 },
tab3[N] = { 9, 10,11, 12 },
tab4[N] = { 13, 14, 15, 16 };
t[0] = tab1;
t[1] = tab2;
t[2] = tab3;
t[3] = tab4;
for (int j = 0; j < 4; j++)
{
for (int i = 0; i < N; i++) {
printf("%d ", t[j][i]);
}
printf("\n");
}
}
for
循环也可以这样写:
for (int j = 0; j < 4; j++)
{
int *temp = t[j];
for (int i = 0; i < N; i++) {
printf("%d ", temp[i]);
}
printf("\n");
}
甚至更简单:
int main(int argc, char const *argv[]) {
int t[N][N] =
{
{ 1, 2, 3, 4 },
{ 5, 6, 7, 8 },
{ 9, 10,11, 12 },
{ 13, 14, 15, 16 }
};
for (int j = 0; j < 4; j++)
{
int *temp = t[j];
for (int i = 0; i < N; i++) {
printf("%d ", temp[i]);
}
printf("\n");
}
}
答案 2 :(得分:0)
作为@Jabberwocky答案的补充,您甚至可以这样做:
#include <stdio.h>
#include <stdlib.h>
#define N 4
int main(int argc, char const *argv[]) {
int i;
int tab1[N] = {1, 2, 3, 4},
tab2[N] = {5, 6, 7, 8},
tab3[N] = {9, 10,11, 12},
tab4[N] = {13, 14, 15, 16};
int *t[N] = {tab1, tab2, tab3, tab4};
for (int j = 0; j < N; j++)
{
for (int i = 0; i < N; i++) {
printf("%d ", t[i][j]);
}
printf("\n");
}
}