面试sizeof C语言各个类型占用字节书

#include <stdio.h>
void fun (int q[100])
{
    int y;
    y = sizeof (q);
    printf ("%d\n", y);
    return ;
}
int main()
{
    int f;
    int *p;
    f = sizeof *p;
    printf ("%d\n" , f);
    /*这里的值应该是p所指向的值,,这是一个整形,所以在32位系统上输出的是4,,,下面改变指针所指向的值的类型以验证*/
        char *d;
    f = sizeof *d;
    printf ("%d\n", f);
    /*这里将指针所指向的数据类型更改为char型,验证啦上 面的说明,这里输出是1*/
    double *g;
    f = sizeof *g;
        printf ("%d\n", f);
    /*这里输出的是8,,在32位系统中double占用8个字节*/
    short *h;
    f = sizeof *h;
        printf ("%d\n", f);
    /*这里输出的是2,,在32位系统中short占用的是2个字节*/
    long *j;
    f = sizeof *j;
        printf ("%d\n", f);
    /*long类型占用4个字节*/
    float *k;
    f = sizeof *k;
        printf ("%d\n", f);
    /*float类型占用4个字节*/
        printf ("*********************************\n");
    f = sizeof p;
    printf ("%d\n", f);
    f = sizeof d;
    printf ("%d\n", f);
    f = sizeof g;
    printf ("%d\n", f);
    f = sizeof h;
    printf ("%d\n", f);
    f = sizeof j;
    printf ("%d\n", f);
    f = sizeof k;
    printf ("%d\n", f);
    /*以上这几行输出的都是指向各种类型的指针本身,,,,在32位系统上输出的都是4*/
        printf ("*********************************\n");
    int a[100];
    int l;
    l = sizeof (a);
    printf ("%d\n", l);
        /*这一行输出的是400,,,及4*100一个4个字节a代表的是整个数组*/
    l = sizeof (a[100]);
    printf ("%d\n", l);
    /*这里输出的是4,,a[100]只是代表第100个元素*/
    l = sizeof (&a);
    printf ("%d\n", l);
    l = sizeof (&a[0]);
    printf ("%d\n", l);
    /*这里输出的是两个指向数组元素的指针,,,,指针所占的字节*/
    int r[100];
    fun(r);
    /*这里就不同于上面400的情况,,,函数传递的是一个数组的指针*/

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值