c - 比较数组,为什么我的 != if 语句正在运行?
问题描述
我正在尝试比较两个相等的数组,使用 for 循环和 if 语句来查看值是否不相等。他们不应该是,但无论如何它都会在 if 之后运行我的代码。
#include <stdio.h>
bool arrayChecker(int a[10], int b[10]);
int main ()
{
bool output;
int a[10] = {1,2,3,4,5,6,7,8,9,10};
int b[10] = {1,2,3,4,5,6,7,8,9,10};
output = arrayChecker(&a[10], &b[10]);
printf("%d", output);
return 0;
}
bool arrayChecker(int a[10], int b[10]){
bool result = true;
for(int i = 0;i<10;i++){
if(a[i] != b[i]){
result = false;
printf("this is being printed and shouldn't be'\n");
}
}
return result;
}
解决方案
您将错误的东西传递给 arrayChecker 函数。
你应该有:
output = arrayChecker(&a[0], &b[0]);
或者
output = arrayChecker(a, b);
您传递的是数组末尾之后的内存位置地址,并比较之后的 10 个整数,就您的程序而言,它们保存随机值。
推荐阅读
- amazon-web-services - 在没有 Lambda 的情况下使用 Amazon API Gateway 作为 DynamoDB 的代理。AJAX 发出 GET 请求不起作用
- javascript - 如何使用平面列表在本机反应中创建砌体布局
- https - 为什么是http而不是https?kubectl cluster-info "kubernetes master running"
- python - Selenium 测试 - 测试单击按钮是否打开正确的项目
- python - 有没有办法通过 reddit PM 自动确认 Google 表单提交?
- php - PHP 未捕获错误 - 防止 MySQL 注入
- ios - UITextField 只允许字母和空格并限制最大字符数
- mongodb - MongoDB根据字段和时间返回最新的对象
- python - 使用 iterrows 在循环内将数据附加到 pandas DF
- reactjs - 在使用 React 的 Material-UI 上遇到两个孩子出现相同的键错误;每次打开抽屉时它都会重新渲染折叠