sizeof举例

第一个例子:

char* ss = "0123456789";

sizeof(ss)

结果 4 ===》ss是指向字符串常量的字符指针

sizeof(*ss)

 结果 1 ===》*ss是第一个字符

char ss[] = "0123456789";

sizeof(ss)

 结果 11 ===》ss是数组,计算到/0位置,因此是10+1

sizeof(*ss)

结果 1 ===》*ss是第一个字符

char ss[100] = "0123456789";

sizeof(ss)

 结果是100 ===》ss表示在内存中的大小 100×1

strlen(ss)

结果是10 ===》strlen是个函数内部实现是用一个循环计算到/0为止之前

int ss[100] = "0123456789";

sizeof(ss)

结果 400 ===》ss表示再内存中的大小 100×4

strlen(ss)

错误 ===》strlen的参数只能是char* 且必须是以''/0''结尾的

char q[]="abc";

char p[]="a/n";

sizeof(q),sizeof(p),strlen(q),strlen(p);

结果是 4 3 3 2

 

第二个例子:

class X

{

    int i;

    int j;

    char k;

};

X x;

cout<<sizeof(X)<<endl;

结果 12 ===》内存补齐

cout<<sizeof(x)<<endl;

结果 12 同上

 

第三个例子:

char szPath[MAX_PATH]

  如果在函数内这样定义,那么sizeof(szPath)将会是MAX_PATH,但是将szPath作为虚参声明时(void fun(char szPath[MAX_PATH])),sizeof(szPath)却会是4(指针大小)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值