求助一下
这题的四个空分别要填什么,谢谢 问题描述:请问以下代码片段中,第11、12、13、14行分别应该填写什么?
int main()
{
int a = { {1,3,5,7}, {9,11,13,15}, {17,19,21,23} };
int (*p), i, j;
p = ________; // 第11行
for (i = 0; i < 3; i++)
{
for (j = 0; j < 4; j++)
printf("%d ", *(*(p+i)+j));
printf("\n");
}
return 0;
}
回答:
在这个程序中,a是一个二维数组,其中包含3行4列共计12个元素。由于数组的内存布局是连续的,可以将二维数组看作是一维数组的数组,即一个包含了3个长度为4的一维数组的数组。因此,我们可以将p定义为一个指向数组的指针,每个数组中有4个元素。
具体来说,在第11行需要填写p = a。在这里,我们将p指向数组a的第一个元素,也就是第一个长度为4的一维数组。
在循环中,我们使用*(*(p+i)+j)来访问数组中的元素。这里的p+i首先指向了第i+1个长度为4的一维数组,然后*(p+i)+j指向该数组中的第j+1个元素。最后,*(*(p+i)+j)用于获取该元素的值。
希望对你有所帮助!如果还有其他问题,请随时提问。
球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:}
页:
[1]