例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表示排版