为什么sizeof(long double) 可以全部写进sizeof(),而其他不用,这里面有什么硬性吗
#include <stdio.h>int main()
{
printf("int = %d\n",sizeof(int));
printf("short int = %d\n",sizeof(short));
printf("long int =%d\n",sizeof(long));
printf("long long int = %d\n",sizeof(long long));
printf("char = %d\n",sizeof(char));
printf("_Bool = %d\n",sizeof(_Bool));
printf("float = %d\n",sizeof(float));
printf("double = %d\n",sizeof(double));
printf("long double = %d\n",sizeof(long double));
return 0;
} 你这是什么意思? 在C语言中,`sizeof()`是一个运算符,用于求取给定数据类型、变量或表达式的字节数。因此,在使用`sizeof()`时,需要将要计算大小的数据类型、变量或表达式放在括号内。
对于所有的数据类型,都可以将其尺寸作为参数传递给`sizeof()`。例如,`sizeof(int)`和`sizeof(double)`都是合法的。但对于具有复杂类型规范的数据类型(如数组、指针和结构体)而言,传递整个类型规范可能会更方便。例如,`sizeof(array)`比`sizeof(int) * length`更清晰明了。
对于提到的这段代码,它中的所有`printf()`调用都使用了`sizeof()`运算符,并放置了不同的数据类型参数。在这里,可以看出每个数据类型所占据的字节数。对于大多数数据类型,由于它们都是基本数据类型,因此只需将名称作为参数传递给`sizeof()`就好了。
然而,当涉及到`long double`时,因为它的字节数相对较大,所以一些编译器可能无法正确解析带有空格的参数。而为了确保`sizeof(long double)`可正常运行,可以将整个数据类型放在圆括号中,从而确保它作为单个参数,如`sizeof(long double)`。 不明白
所以说其他sizeof()例如sizeof(short)可不可以写成sizeof(short int),sizeof(long long)写成sizeof(long long int) 刘斩仙 发表于 2023-6-10 17:44
所以说其他sizeof()例如sizeof(short)可不可以写成sizeof(short int),sizeof(long long)写成sizeof(long...
是的,其他的`sizeof()`也可以写成它们本身的完整类型名,例如`sizeof(short)`可以写成`sizeof(short int)`。同样地,`sizeof(long long)`可以写成`sizeof(long long int)`。这是因为在 C 语言中,短整型(`short`)、长整型(`long`)和长长整型(`long long`)都有一个完整的形式(`short int`、`long int` 和 `long long int`),这些形式在语法上与短/长/长长整型等价,而且具有相同的大小和行为。
给个最佳答案
页:
[1]