32位机器下,int型变量占用的内存空间大小为4个字节,如果不用sizeof的话可以通过以下方式:
定义宏
#include<stdio.h>
#define MySizeof(Value) (char*)(&Value+1)-(char *)&Value
int main()
{
int i;
double f;
double a[4];
double *q;
printf("%d\n",MySizeof(i));
printf("%d\n",MySizeof(f));
printf("%d\n",MySizeof(a));
printf("%d\n",MySizeof(q));
return 0;
}
输出结果: 4
8
32
4