sizeof的用法

sizeof的结果等于对象或者类型所占的内存字节数

一:基本数据类型的sizeof

        像short、int、long、float等简单的内置数据,sizeof返回的是这些数据内存

        例:sizeof(short)=2,sizeof(int)=4;

二:指针变量的sizeof

        指针是一个很重要的概念,它记录了另一个对象的地址。既然是来存放地址的,那么它当然等于计算机内部地址总线的宽            度。所以在64位计算机中sizeof(指针)的值为8固定不变的。

        例:char *pc="abc",int *pi,char **ppc=&pc;

                sizeof(px)=sizeof(pi)=sizeof(ppc)=8;

三:数组指针的sizeof

       数组的sizeof等同于所占内存的字节数

       例:char a1[]="abc";int a2[3];

               sizeof(a1)=4;//这种数组定义默认末尾还有一个NULL终止符所以为4;

               sizeof(a2)=12;//依赖于int,sizeof(int)为4,所以为3*4=12;

               所以求数组的长度不能直接用sizeof可以用length=sizeof(a2)/sizeof(int);

       特别注意:void foo1(char a1[3]){

                                int c1=sizeof(a1);             //a1=???

                        }

                          void foo2(char a2[]){

                               int c2=sizeof(a2);             //a2=???

                       }

       此时的c3!=3,因为函数参数里面的c3不再是数组类型,而是蜕变成指针,相当于char *a1;

四:函数的sizeof

        函数的sizeof返回的它的返回类型

         例:int foo(){}则它的sizeof(foo)等价于sizeof(int)=4;

       

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值