in the example you give, you are comparing a single character (array[0]) with the address of a compiled-in string ("some_string").
Because a string literal is treated as a null-terminated character array, and comparisons against a character array with the == operator compare the address of the array.
The example you gave is essentially similar to this:
char* x = "some_string";
char array[10];
if(array[0] == x)
...
And you can see from this example that the types simply don't match. As another poster stated, you use the [] operator to obtain a specific character from the offset in the brackets from the start of the array.