c语言原生数据类型长度探讨

    技术2022-06-11  71

    #include <stdio.h>

    #include <stdlib.h>

    int main()

    {

        printf ("sizeof(int)=%d/n",sizeof(int));

        printf ("sizeof(short)=%d/n",sizeof(short));

        printf ("sizeof(long)=%d/n",sizeof(long));

        printf ("sizeof(long long)=%d/n",sizeof(long long)); 

        printf ("sizeof(float)=%d/n",sizeof(float));

        printf ("sizeof(double)=%d/n",sizeof(double));

        printf ("sizeof(long double)=%d/n",sizeof(long double));

        system ("pause");

        return 0;

    }

     

    运行这一段代码的结果是

    课本上说的是

    float->%f,  double->%lf  ,long double->%Lf

    但我觉得,现在的一些编译器基本忽略了这个细节。(或者是没有提示警告)

     

    之后,再扩充一些东西吧。

    对于整形常量

    uU  表示 unsigned

    l L   表示  long

    ul UL  表示 unsigned long

    ll LL  表示 long long

    ull ULL  表示 unsigned long long

    对于浮点常量

    fF表示 float

    lL 表示 long double

     

    然后你再看一下这段代码

    #include <stdio.h>

    #include <stdlib.h>

     

    int main()

    {  

        printf ("sizeof(11)=%d/n",sizeof(11));

        printf ("sizeof(11u)=%d/n",sizeof(11u));

        printf ("sizeof(11l)=%d/n",sizeof(11l));

        printf ("sizeof(11ul)=%d/n",sizeof(11ul));

        printf ("sizeof(11ll)=%d/n",sizeof(11ll));

        printf ("sizeof(11ull)=%d/n",sizeof(11ull));

        printf ("sizeof(11.0)=%d/n",sizeof(11.0));

        printf ("sizeof(11.0f)=%d/n",sizeof(11.0f));

        printf ("sizeof(11.0l)=%d/n",sizeof(11.0l));

      

        system ("pause");

        return 0;

    }

     

     

     

       上面那个结果可以看出  11 默认是 int    sizeof=4;

                             11.0  默认是 double     sizeof=8;


    最新回复(0)