я могу объявить массив целого массива, как это:Сколько способов печати массива целочисленного массива?
int dataA[3][3] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
и распечатать массив из соответственно, как это двумя способами:
#include <stdio.h>
int main() {
int dataA[3][3] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
int i = 0;
for (; i < 3; i++) {
int j = 0;
for (; j < 3; j++)
printf("%i,", dataA[i][j]);
printf(";");
}
puts("");
int dataB[3][3] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
int *p = (int *) dataB;
int m = 0;
for (; m < 3; m++) {
int n = 0;
for (; n < 3; n++)
printf("%i,", *p + ((m * 3) + n));
printf(";");
}
return 0;
}
Как если я объявляю этот путь (это декларация прав?), как распечатать их таким образом?
#include <stdio.h>
int main() {
puts("");
int *dataC[3] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
/*
* How to print out the array in this situation?
*/
puts("");
int x[] = { 1, 2, 3 };
int y[] = { 4, 5, 6 };
int z[] = { 7, 8, 9 };
int *dataD[3] = { &x, &y, &z };
/*
* How to print out the array in this situation?
*/
return 0;
}
Есть ли способ, как литье может сделать int * dataC [3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; действует? –
@LeeWilliam * составной литерал *: 'int * dataC [3] = {(int []) {1, 2, 3}, (int []) {4, 5, 6}, (int []) {7 , 8, 9}}; '[Смотрите это в прямом эфире] (http://ideone.com/E47X2g). – WhozCraig
@WhozCraig Это именно то, что я хочу знать, спасибо. –