sizeof关键字的使用

来源:互联网 发布:土豆视频mac 编辑:程序博客网 时间:2024/05/18 13:48
sizeof()1sizeof不能计算 void 类型的大小2 sizeof 不能计算函数的大小  因为sizeof 实在编译阶段确定大小的 而函数实在运行阶段确定大小的sizeof不做计算只测大小 如 int n = 2sizeof( n = n + 12 );  ----->在内存中会转化为sizeof( int )    printf("%d\n",n)   结果为4sizeof(4) ------->会转换为sizeof(int)   sizeof( 1.7 ) ------>会转化为sizeof( double )sizeof( 1.7f ) ----->会转化为sizeof( float )---------------------------------------------------char + short = int int + float = float   对于 这个有人说是double 但是在gcc 编译器测试时floatfloat + double  = double sizeof()可以测试空间的大小 也可以测试整形数组的个数char buf[20] = {0};sizeof( buf );int buf[20] = {0};sizeof(buf)/sizeof(buf[0]);测试代码如下#include <stdio.h>int main( void ){        int n = 2;        char c = 'a';        short b = 4;        float d = 1.4;        double e = 1.6;        char buf[20] = {0};        int num[50] = {0};        printf("%d\n",sizeof(2));        printf("%d\n",sizeof( n = n + 2 ));        printf("%d\n",sizeof(7.5));        printf("%d\n",sizeof( 7.3f ));        printf("----------------------\n");        printf("char + short=%d\n",sizeof( c+b ));        printf("int + float=%d\n",sizeof( n+d ));        printf("float + double =%d\n",sizeof( d+e ));        printf("---------------------------------\n");        printf("sizeof(buf) = %d\n",sizeof(buf));        printf("sizeof(num)/sizeof(num[0]) = %d\n",sizeof(num)/sizeof(num[0]));        return 0;}结果 4484----------------------char + short=4int + float=4float + double =8---------------------------------sizeof(buf) = 20sizeof(num)/sizeof(num[0]) = 50
0 0