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

How can I compare a pointer variable *b[3] with an array a[3] as below in the code?

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

#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

您需要在不收到警告的情况下使用强制转换来执行比较。

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");
        }
    }
}