#include<stdio.h>
#include<stdlib.h>
int string_length(int (*s)[10], int L, int W)
{
int len = 0;
int i, j;
for (i = 0; i < L; i++)
{
for (j = 0; j < W; j++)
{
len++;
printf("%d ", *(*(s + i) + j));
}
printf("\n");
}
return len;
}
int main(int argc, char** argv)
{
int str[20][10] =
{
{ 2, 1, 3, 1, 1, 1, 1, 1, 1, 1 },
{ 2, 1, 3, 1, 1, 1, 1, 1, 1, 1 },
{ 2, 1, 3, 1, 1, 1, 1, 1, 1, 1 },
{ 2, 1, 3, 1, 1, 1, 1, 1, 1, 1 },
{ 2, 1, 3, 1, 1, 1, 1, 1, 1, 1 }
};
printf("the sizeof this 2d array will be %lu \n", sizeof(str));
printf("the length of the strings will be %lu \n",
sizeof(str) / sizeof(str[0]));
printf("the width of the each string %lu \n",
sizeof(str[0]) / sizeof(str[0][0]));
printf("the result is %d \n",
string_length(str, sizeof(str) / sizeof(str[0]),
sizeof(str[0]) / sizeof(str[0][0])));
int i = 0;
while (i < 10)
printf("hello %d\n", i), i++;
return 0;
}
这是我想出通过地址进行引用的一种方法,我知道还有很多其他方法,任何人都可以列出其他方法如何有效地完成 2D 引用吗?而且我的代码有点破旧,所以任何人都可以提出其他方法来完成它。逗号分隔的语句如何在第二个while循环中工作???编译器如何处理这些语句是否有任何特殊情况。