微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在代码中将指针变量 *b[3] 与数组 a[3] 进行比较?

如何解决如何在代码中将指针变量 *b[3] 与数组 a[3] 进行比较?

我尝试了以下方法,但似乎无法正常工作。

#include <stdio.h>
#include <stdlib.h>

int main()
{
    char *a[3] = {1,4,3};
    char b[3] = {1,2,3};
    int i;
    for(i=0; i<3; i++)
    {
        if(b[i] == a[i])
        {
            printf("Pass");
        }
        else
        {
            printf("fail");
        }
    }
}
  • 错误:警告:指针和整数之间的比较
  • [警告] 初始化使指针指向整数,而无需在 char *a[3] 处进行强制转换

如何更正 if(*b[j]== a[j]) 以便可以比较 ba

解决方法

您需要使用强制转换来执行比较而不会收到警告。

if ((char *)b[i] == a[i])

并且在初始化数组时也进行强制转换:

char *a[3] = {(char *)1,(char *)4,(char *)3};

但是正如评论中提到的,将随机整数存储在指针中是没有意义的。结果是实现定义的,因此此代码不可移植。

,

这是您需要的:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    char* a[3] = { (char[]) { 1 },(char[]) { 4 },(char[]) { 3 } };
    char b[3] = { 1,2,3 };
    int i;
    for (i = 0; i < 3; i++)
    {
        if (b[i] == *a[i])
        {
            printf("Pass");
        }
        else
        {
            printf("fail");
        }
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。