suppose have following array:
int list[3]={2,8,9}; printf("%p,%p,%p",(void*)&list[0],(void*)&list[1],(void*)&list[2]);
is guaranteed &list[0]<&list[1]<&list[2] ?
i had assumed hard , fast rule while using c, have sure op asked me when answered question endianness
what gave me second thoughts stacks can grow or down
issue.i not sure rigorous answers appreciated.thanks.
yes, it's guaranteed &list[0]<&list[1]
, &list[1]<&list[2]
. when pointers elements of same array compared, pointer element larger subscript considered have larger value. specified in c99 6.5.8@5:
pointers array elements larger subscript values compare greater pointers elements of same array lower subscript values
however, not guaranteed values printed printf %p
follow same ordering - these values implementation-defined.
Comments
Post a Comment