如何在c中获得各种类型的尺寸?

时间:2010-03-15 13:49:47

标签: c

我想知道 C

中以下类型的大小

sizeof(int)sizeof(float)sizeof(double)sizeof(char)sizeof(167)sizeof(3.1415926)sizeof(‘$’)

4 个答案:

答案 0 :(得分:3)

不确定。您可以使用以下代码。我在C回答,因为这是问题所要求的,尽管有C#标签。如果您真的想要C#,其他人将不得不提供帮助。

#include <stdio.h>
int main (void) {
    // Use %zu for size_t if your compiler supports it.
    printf("sizeof(int)       = %d\n",sizeof(int));
    printf("sizeof(float)     = %d\n",sizeof(float));
    printf("sizeof(double)    = %d\n",sizeof(double));
    printf("sizeof(char)      = %d\n",sizeof(char));
    printf("sizeof(167)       = %d\n",sizeof(167));
    printf("sizeof(3.1415926) = %d\n",sizeof(3.1415926));
    printf("sizeof('$')       = %d\n",sizeof('$'));
    return 0;
}

此输出(在我的系统上):

sizeof(int)       = 4
sizeof(float)     = 4
sizeof(double)    = 8
sizeof(char)      = 1
sizeof(167)       = 4
sizeof(3.1415926) = 8
sizeof('$')       = 4

请记住,这会为您提供以字节为单位的值,在C标准下,必须为8位。您应该检查来自limits.h的CHAR_BITS,以查看一个字节中有多少位。

答案 1 :(得分:1)

这样的东西
#include <stdio.h>

int main()
{
    printf("sizeof(int) = %ul\n", (unsigned long) sizeof(int));
}
用很多类似的线来做。保存,编译和运行。

一个常见的错误是printf("sizeof(int) = %d", sizeof(int));,但这是不匹配的。 sizeof()的结果是size_t,这是一个无符号整数类型,足以容纳任何可能的对象大小。 %d说明符要求int,这是一个便于计算的有符号整数类型。 size_t大于int并不是那么罕见,然后你传递一个函数不期望的大小的参数,这可能是坏的。

答案 2 :(得分:0)

如果它是一个控制台应用程序,你可以使用带有字符串并显示它的writeline:

Console.WriteLine(sizeof(int));
Console.WriteLine(sizeof(int));
Console.WriteLine(sizeof(float));
Console.WriteLine(sizeof(double));
Console.WriteLine(sizeof(char));
Console.WriteLine(sizeof (167));
Console.WriteLine(sizeof(3.1415926));
Console.WriteLine(sizeof(‘$’));

答案 3 :(得分:0)

我过去三年没有从事C语言工作。但以下是你的问题的答案。 您可以按如下方式打印不同数据类型的大小:

printf(“整数大小:%ul”,sizeof(int));

printf(“float的大小:%ul”,sizeof(float));

printf(“double的大小:%ul”,sizeof(double));

printf(“char的大小:%ul”,sizeof(char));

printf(“167的大小:%ul”,sizeof(167));

printf(“3.1415926的大小:%ul”,sizeof(3.1415926));

printf(“整数大小:%ul”,sizeof('$'));

只需粘贴程序中的printf行。您将获得数据类型的大小。

这里sizeof()是一个函数,它返回存储该数据类型或文字所需的总内存。