gpt4 book ai didi

c - 这段代码中的 `.arr`函数是什么?

转载 作者:行者123 更新时间:2023-12-01 13:18:59 27 4
gpt4 key购买 nike

我来自 Python,但我在 C 语言的 Codefights 中看到了这段代码,但我无法用谷歌找到 .arr 的含义。我也没有看到代码中有任何变量:

// Definition for arrays:
// typedef struct arr_##name {
// int size;
// type *arr;
// } arr_##name;
//
// arr_##name alloc_arr_##name(int len) {
// arr_##name a = {len, len > 0 ? malloc(sizeof(type) * len) : NULL};
// return a;
// }
//
//

int firstDuplicate(arr_integer a) {
int i = 0;
int val = 0;
for(i = 0; i < a.size; i++) {
val = a.arr[i];
if(val < 0) {
val = -1*val;
}
if(a.arr[val-1] < 0) {
return val;
} else {
a.arr[val-1] = a.arr[val-1]*-1;
}
}
return -1;
}

a.arr[i] 与 a[i] 是否相同?

最佳答案

如果我没记错的话,在 CodeFights 中,您使用的包装器定义为:

// Definition for arrays:
typedef struct arr_##name {
int size;
type *arr;
} arr_##name;

因此,arr_integer 不是一个数组,而是一个包含 int 数组的 struct。要访问其元素,您需要 .arr

关于c - 这段代码中的 `.arr`函数是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51553419/

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