数组与指针的sizeof大小

1.sizeof定义
sizeof 运算符,以字节为单位给出数据大小
strlen()函数,以字符为单位给出字符串长度
sizeof(int)求类型大小,必须带括号
sizeof(b=a+2)其中表达式不计算
sizeof(a)求变量大小
2.sizeof与数组
int a[] = { 1, 2, 3, 4 }; printf("%d\n", sizeof(a));//16 一个整形四个字节,四个元素 printf("%d\n", sizeof(a + 0));//4 表示指针 printf("%d\n", sizeof(*a));//4 a首元素地址,*a解引用首元素大小 printf("%d\n", sizeof(a + 1));//4 a首元素地址加1还是地址 printf("%d\n", sizeof(a[1]));//4数组第二个元素 printf("%d\n", sizeof(&a));//4 整个数组地址 vc中是16 错误 printf("%d\n", sizeof(&a + 1));//4 指向下一个数组的地址 printf("%d\n", sizeof(&a[0]));//4首元素地址 printf("%d\n", sizeof(&a[0] + 1));//4第二个元素2的地址 printf("%d\n", sizeof(*&a));//16 &a整个数组地址 解引用为整个数组大小
char name[] = "abcdef";
printf("%d\n", sizeof(name[0]));//1首元素大小 printf("%d\n", sizeof(&name));//4取地址数组名是地址 printf("%d\n", sizeof(*name));//1 name数组首元素地址,解引用数组第一个元素大小 printf("%d\n", sizeof(&name+1));//4指向下一个数组的地址 printf("%d\n", sizeof(name+1));//4 b的地址 printf("%d\n", sizeof(name));//7 数组总大小 printf("%d\n", strlen(name));//6  字符串长度 printf("%d\n", strlen(&name));//6  取地址数组名和数组名是同一值字符串长度 printf("%d\n", strlen(&name + 1));//X随机值  下一个数组的长度 printf("%d\n", strlen(name + 1));//5 第二个元素以后的字符串长度
3.sizeof和指针
char *name = "abcdef"; printf("%d\n", sizeof(name[0]));//1首元素大小 相当于 *(name+0) printf("%d\n", sizeof(&name));//4 指针变量地址是地址 printf("%d\n", sizeof(*name));//1 首元素大小 printf("%d\n", sizeof(&name+1));//4 指针变量地址 加一跳过指向下一个地址 printf("%d\n", sizeof(name+1));//4 b的地址 printf("%d\n", sizeof(name));//7 name是指针变量 printf("%d\n", strlen(name));//6  字符串长度 printf("%d\n", strlen(&name));//随机值  name变量地址 printf("%d\n", strlen(&name + 1));//随机值  name变量地址  加一跳过指向下一个name变量地址 printf("%d\n", strlen(name + 1));//5 第二个元素以后的字符串长度

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值