首页 > 解决方案 > 如何在代码中将指针变量 *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");
        }
    }
}

我怎样才能更正 if(*b[j]== a[j])以便我可以比较两者ba

标签: cloopscompare

解决方案


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

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

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

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

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


推荐阅读