C++之sizeof的用法



1.sizeof不是一个函数,而是一个语言内置的关键字,是C/C++32个关键字中的一个。


2.C/C++语言规定,int前只能加signed、unsigned、auto、const、volative,用来修饰变量的存储方式,可没有提到前面的可以加sizeof。

例如:sizeof 4 与 sizeof(int)的结果都是4;

但是如果是这样:sizeof int 编译不过,sizeof(int)编译通过。


3.sizeof与strlen的关系。sizeof是关键字,strlen是一个标准C语言库函数,用来取字符串的长度。

例如:char* str = “hello”;sizeof(str);//结果输出4,因为一个指针占4个字节。注意:sizeof(int)(*p)结果也是4,因为这里也是求一个指针的长度。

strlen(str);结果输出5,str刚好5个字符,不包括‘\0’结束字符。


4.好了,最好举例复习下。

int a[100];

sizeof(a);// 40此处测量的是一个数组的大小

sizeof(a[0]);//4,数组里的一个整型变量的大小


sizeof(a[100]);

//4,其实已经越界访问了,但是此处不会报错,因为越界错误是运行时异常,编译器不作检查,

//此时a[10]编译器认为就是数组里的一个整形变量,结果当然也是4


void test(int a[100])

{

           cout<<sizeof(a)<<endl;//4

          //C/C++语言规定函数无法以数组作为参数或者返回值,会转化为指针,所以是一个指针的长度,为4.

}



 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值