可能重复:
不使用sizeof的数据类型的大小
这是在C采访中提出的问题我想知道这是什么正确的逻辑
如果您没有C语言中的sizeof运算符,您将如何知道int的大小?
Ste*_*sop 10
使用数组[*]:
int a[2];
int sizeof_int = (char*)(a+1) - (char*)(a);
Run Code Online (Sandbox Code Playgroud)
实际上,由于关于指针算术的部分中的注释,您甚至不需要数组,因为出于指针算术的目的,对象的行为类似于大小为1的数组,并且一个非正式的指针是合法的数组:
int a;
int sizeof_int = (char*)((&a)+1) - (char*)(&a);
Run Code Online (Sandbox Code Playgroud)
[*]我的意思是"解决问题的方法是使用数组".实际上不要使用数组,请使用sizeof!