给你两个程序,你来观察这两个程序的区别
注意,我把 test5 注释掉了,因为这个函数是错误的
#include <stdio.h>
#define LEN 5
void test1(int data[]) {
for(int i = 0; i < LEN; ++i)
printf("%d ", data[i]);
printf("\n");
}
void test2(int data[LEN]) {
for(int i = 0; i < LEN; ++i)
printf("%d ", data[i]);
printf("\n");
}
void test3(int data[5]) {
for(int i = 0; i < LEN; ++i)
printf("%d ", data[i]);
printf("\n");
}
void test4(int *data) {
for(int i = 0; i < LEN; ++i)
printf("%d ", data[i]);
printf("\n");
}
int main(void) {
int data[LEN] = {1, 2, 3, 4 ,5};
test1(data);
test2(data);
test3(data);
test4(data);
return 0;
}
#include <stdio.h>
#define LEN 3
void test1(int data[][5]) {
for(int y = 0; y < LEN; ++y) {
for(int x = 0; x < 5; ++x) {
printf("%d ", data[y][x]);
}
printf("\n");
}
printf("\n");
}
void test2(int data[LEN][5]) {
for(int y = 0; y < LEN; ++y) {
for(int x = 0; x < 5; ++x) {
printf("%d ", data[y][x]);
}
printf("\n");
}
printf("\n");
}
void test3(int data[3][5]) {
for(int y = 0; y < LEN; ++y) {
for(int x = 0; x < 5; ++x) {
printf("%d ", data[y][x]);
}
printf("\n");
}
printf("\n");
}
void test4(int (*data)[5]) {
for(int y = 0; y < LEN; ++y) {
for(int x = 0; x < 5; ++x) {
printf("%d ", data[y][x]);
}
printf("\n");
}
printf("\n");
}
/*
void test5(int *data[5]) {
for(int y = 0; y < LEN; ++y) {
for(int x = 0; x < 5; ++x) {
printf("%d ", data[y][x]);
}
printf("\n");
}
printf("\n");
}
*/
int main(void) {
int data[LEN][5] = {
{11, 12, 13, 14 ,15},
{21, 22, 23, 24 ,25},
{31, 32, 33, 34 ,35}
};
test1(data);
test2(data);
test3(data);
test4(data);
//test5(data);
return 0;
}
|