这段代码行做了什么?

时间:2012-08-03 10:29:17

标签: c int sizeof

您好我是C编程新手,任何人都可以告诉我这行代码会做什么:

i = (sizeof (X) / sizeof (int))

当代码采用bdata的值并将其与不同的情况进行比较时,代码实际上与case语句一起使用。

5 个答案:

答案 0 :(得分:4)

通常,这样的语句用于计算数组中元素的数量。

让我们考虑一个整数数组如下:

int a[4];

现在,当sizeof(a)完成后,它将返回4*4 = 16作为大小。 4个元素,每个元素为4个字节。

因此,当你执行sizeof(a) / sizeof(int)时,你将获得4,即数组的长度或大小。

答案 1 :(得分:3)

它计算名为int的{​​{1}}数组的元素数。

答案 2 :(得分:1)

返回数组X的长度

答案 3 :(得分:0)

它计算内存中X的卷除以计算机中整数的大小(2个字节或4个字节)。如果i是整数而不是整数除法。如果它是浮点数并且X没有均匀的音量,则它是真正的除法。

int size可以改变。 X取决于实施。除法结果取决于i的类型。

所有这些意味着,它计算出适合X的多少个。

答案 4 :(得分:0)

除了常规练习或个人经验之外,没有理由认为这个i = (sizeof (X) / sizeof (int))计算数组X的大小。通常可能是这种情况,但理论上X可以是任何类型,所以给定表达式会计算var X和int的大小之比(你的X var相对于int占用多少内存,以字节为单位)

此外,如果X是指向数组的指针(float * X,这是在C中声明数组的替代方法),则该表达式将在32位体系结构上计算为1。指针将是4个字节,int也是4个字节=> i = sizeof(X) / sizeof(int) (=1)