Pointer comparisons in C. Are they signed or unsigned?
Hi I'm sure this must be a common question but I can't find the answer when I search for it. My question basically concerns two pointers. I want to compare their addresses and determine if one is bigger than the other. I would expect all addresses to be unsigned during comparison. Is this true, and does it vary between C89, C99 and C++? When I compile with gcc the comparison is unsigned.  

If I have a two pointers that I'm comparing like this:  
char *a = (char *)0x80000000; //-2147483648 or 2147483648 ?  
char *b = (char *)0x1;  
Then a is greater. Is this guaranteed by a standard?

Pointer comparisons in C. Are they signed or unsigned?
===

Hi I'm sure this must be a common question but I can't find the answer when I search for it. My question basically concerns two pointers. I want to compare their addresses and determine if one is bigger than the other. I would expect all addresses to be unsigned during comparison. Is this true, and does it vary between C89, C99 and C++? When I compile with gcc the comparison is unsigned.  

If I have a two pointers that I'm comparing like this:  
char *a = (char *)0x80000000; //-2147483648 or 2147483648 ?  
char *b = (char *)0x1;  
Then a is greater. Is this guaranteed by a standard?
