gpt4 book ai didi

c - 在条件中使用数组

转载 作者:太空狗 更新时间:2023-10-29 15:46:06 25 4
gpt4 key购买 nike

我想在一个条件下检查一个数组。让我们看下面这个简单的代码:

#include <stdio.h>
int main()
{
int array[] = {1,2,3,4,5}; // initializing an array
if(array[] == {1,2,3,4,5}) // using as condition
{
printf("worked");
}
else printf("not worked");

return 0;
}

但是报错:

In function 'main':|
C:\Python32\Untitled4.c|5|error: expected expression before ']' token|
||=== Build finished: 1 errors, 0 warnings ===|

那么我应该如何在条件中使用数组呢?

最佳答案

如果你有现代 C 编译器,至少是 C99,你可以使用复合文字和函数来进行比较:

if(memcmp(array, (int[]){1,2,3,4,5}, sizeof array) == 0) {
printf("worked");
}
  • 这里memcmp(内存比较)比较两者的数据指点。
  • (int[]){1,2,3,4,5} 是复合文字,类型在 () 中,然后是初始化程序{ } 与变量声明中的一样。
  • 当像那样在表达式中使用时,这两个数组将转换为指向它们第一个元素的指针

编辑: 正如 Eric 正确评论的那样,memcmp 仅在数组的基类型(此处为 int)时才有效比较没有填充位或字节。对于 int 这几天并不常见,所以我所描述的在通常的平台上都很好。如果有一天您有其他更复杂的数据类型,则必须为该类型的数组编写自己的比较函数。

关于c - 在条件中使用数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11993312/

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