C一些诡异的情况

 unsigned int ui_one = 1;
 signed int i_one = 1;
 signed short s_minus_one = -1;
 if (s_minus_one > ui_one)
  printf("-1 > 1\n");
 if (s_minus_one < i_one)
  printf("-1 < 1\n");

#./run
#
# -1 > 1
# -1 < 1

 int array[] ={ 0, 1, 2, 3, 4 };
 int *pointer = array;
 if (sizeof(array) == sizeof(pointer))
  printf("This will never be printed");
 if (sizeof(int *) == sizeof(&array[0]))
  printf("This will be printed!!\n");
 if (&array[2] - &array[0] == 8)
  printf("This will never be printed either ,result is 2 not 8!1");
 cout<<sizeof(array)<<endl;
 cout<<sizeof(pointer)<<endl;
 cout<<array[2]<<endl;
 cout<<array[0]<<endl;

This will be printed!!
20
4
2
0

原文地址:https://www.cnblogs.com/byfei/p/3112265.html