我在Windows 10中使用C代码程序块。我在下面的程序中写这个,但不是给12,而是给出24作为输出。我也使用在线编译器检查了它,但它仍然提供相同的输出。
#include<stdio.h>
int main()
{
int num[]={5,7,9,0,1,7};
printf("%d",sizeof(num));
return 0;
}
答案 0 :(得分:4)
但不是给出12而是给出24作为输出
不确定为什么您希望输出为<label ng-repeat="item in repeatingItems">
{{item}}
<setting item="item" myProperty="settings.someProperty" />
</label>
。您可能假设12
为sizeof(int)
,并非在所有平台上都是如此。
2
取决于平台,sizeof(int)
在您的平台上为sizeof(int)
。因此,输出为4
。
注意:要打印24
(size_t
返回的内容),请使用sizeof()
:
%zu
答案 1 :(得分:3)
这可能有助于您理解:
#include <stdio.h>
int main()
{
int num[] = { 5, 7, 9, 0, 1, 7 };
printf("sizeof(int) = %zu\n", sizeof(int));
printf("sizeof(num[0]) = %zu\n", sizeof(num[0]));
printf("sizeof(num) = %zu\n", sizeof(num));
printf("number of elements in num[]: %zu\n", sizeof(num) / sizeof(num[0]));
return 0;
}
输出:
sizeof(int) = 4
sizeof(num[0]) = 4
sizeof(num) = 24
number of elements in num[]: 6
现在,如果你把它翻译成Pascal:
program sizetest;
var
num: array[1..6] of integer;
begin
writeln('sizeof(integer) = ', sizeof(integer));
writeln('sizeof(num[1]) = ', sizeof(num[1]));
writeln('sizeof(num) = ', sizeof(num));
writeln('number of elements in num[]: ', sizeof(num) / sizeof(num[1]));
end.
您将获得以下输出:
sizeof(integer) = 2
sizeof(num[1]) = 2
sizeof(num) = 12
number of elements in num[]: 6
最后(我希望它不会破坏你的世界)看看支持非常大的整数的python:
import sys
sys.getsizeof(int())
24
是的,二十四岁!所以现在应该清楚int的大小真的取决于平台。
另请阅读https://en.wikipedia.org/wiki/Integer_(computer_science)