gpt4 book ai didi

c - 使用双指针访问二维数组元素

转载 作者:行者123 更新时间:2023-12-04 11:46:23 32 4
gpt4 key购买 nike

最近我接受了一个C 的面试。面试官让我解释一下如何使用双指针访问二维数组中的特定元素。我给出的答案是*(*(a+i)+j),其中a是双指针,i是行数j 是列数。后来他让我举例说明。我对 *(a+i) 感到困惑,因为它提供了值(value)而不是地址,并且添加到 j 提供了一些垃圾值(value)。谁能解释一下。

最佳答案

请记住,在一维数组中,a[i] 等于 *(a+i)。 C 中没有二维数组,只有数组的数组。

所以 a[i][j] 实际上等于 *(*(a+i)+j)

如果a的类型是int**,那么(a+i)的类型还是int* *,你需要取消引用它。 *(a+i)的类型是int**(*(a+i)+j)的类型是int.

关于面试题,不管a是双指针,还是应该用[]表示法。替代方案太麻烦了:

int **a = ...;
int x = a[i][j];

关于c - 使用双指针访问二维数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30187430/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com