'Array of pointers to char in C

I am confused with how an array of pointer to char works in C.

Here is a sample of the code which I am using to understand the array of pointers to char.

int main() {
    char *d[]={"hi","bye"};
    int a;
    a = (d[0]=="hi") ? 1:0;
    printf("%d\n",a);
    return 0;
}

I am getting a = 1 so d[0]="hi". What is confusing me that since d is an array of char pointers, shouldn't be a[0] equal to the address of h of the hi string ?



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source