例1

#include <stdio.h>
int main()
{
// 1.变量及其地址的字节长度
 int i;
 int t;
 printf("%lu\n",sizeof i);
 printf("%lu\n",sizeof (i));
 printf("%lu\n",sizeof (int));
 printf("%lu\n",sizeof (&i));
 //32位下,均为4
 //64位下,&i为8 

// 1.输出变量的地址
 printf("0x%x\n",&i);
 printf("%p\n",&i);
 printf("%p\n",&t);
 
// 2.数组的地址
 int a[10];
 printf("%p\n",&a);
 printf("%p\n",a);
 printf("%p\n",&a[0]);
// 这三个等价
// 同一个数组中每个元素的地址依次多4
 printf("%p\n",&a[1]);
 
// 3.数组的字节长度
 printf("%lu\n",sizeof(&a));
// 64位架构中,为8 

// 参考1.
 printf("%lu\n",sizeof(a));
 printf("%lu\n",sizeof(a[0]));
// sizeof(a) / sizeof(a[0])为数组长度
 return 0;
}

例2

#include <stdio.h>
int main()
{
     int a[] = {2,4,6,7,1,3,5,9,11,13,23,14,32};
     {
      int i;
      printf("%d\n",sizeof(a));
      printf("%d\n",sizeof(a[0]));
          for(i=0; i<sizeof(a)/sizeof(a[0]);i++)
          {
           printf("%d\t",a[i]);
          }
      printf("\n");
     }
     return 0;
}
//  分别输出 1.sizeof(a)
//                 2.sizeof(a[0])
//                 3.每一个数组元素
//                 4.\t表示排版