猜猜下面代码的输出是什么?
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->
#include
<
stdio.h
>
int array[] = {1,2,3,4,5,6,7,8,9,10} ;
#define TOTAL_ELEMENTSsizeof(array)/sizeof(array[0])
int main() {
intd=-1;
printf("d:%d\n",d);
if(d>TOTAL_ELEMENTS){
printf("d:%dd>TOTAL_ELEMENTS:%d\n",d,TOTAL_ELEMENTS);
}
if(d<(unsignedchar)1){
printf("d:%dd<unsignedchar1\n",d);
}
if(d>(unsignedint)1){
printf("d:%dd>unsignedint1",d);
}
getchar();
}
int array[] = {1,2,3,4,5,6,7,8,9,10} ;
#define TOTAL_ELEMENTSsizeof(array)/sizeof(array[0])
int main() {
intd=-1;
printf("d:%d\n",d);
if(d>TOTAL_ELEMENTS){
printf("d:%dd>TOTAL_ELEMENTS:%d\n",d,TOTAL_ELEMENTS);
}
if(d<(unsignedchar)1){
printf("d:%dd<unsignedchar1\n",d);
}
if(d>(unsignedint)1){
printf("d:%dd>unsignedint1",d);
}
getchar();
}
ANSI C编译器下的结果为:
d:-1
d:-1 d > TOTAL_ELEMENTS:10
d:-1 d < unsigned char 1
d:-1 d > unsigned int 1
知道静悄悄的改变发生在哪儿了么? ;-)