C语言sizeof运算符学习

一、sizeof的本质是运算符

sizeof是C/C++中的关键字,是(单目)运算符或者操作符,而不是函数。用于判断变量数据类型字节大小,sizeof 运算符可用于获取类、结构、共用体和其他用户自定义数据类型的大小。

sizeof的使用方法:

sizeof(int)

对于变量:

char a;
sizeof(a);
sizeof a;//对于变量可以不加()

 从这里可以看出sizeof并不是函数,因为函数的实参必须放在括号里,而对于sizeof,判断变量的长度不需要放在括号里。

二、sizeof的返回值类型是unsigned int

int main()
{
unsigned int a=4;
if (a-8>0)
    print("大于0");//有符号和无符号数运算,返回无符号数
if (sizeof(int)-8>0)
    print("sizeof返回无符号整数");
else
    print("小于0");
return 0;

}

可以用这段代码验证,验证表明sizeof返回值类型为unsigned int 无符号整型。

三、sizeof可以统计数组的长度

int main()
{
int a[]={0,1,2,3};
print("数组长度为:%d\n",sizeof (a)/sizeof(int));
return 0;
}

当数组作为参数传入其它函数时,这种方法就不能用了。这是由于数组作为参数传入函数时,传递的是地址,此时数组名会退化为指针,该指针指向数组首地址。例如:

void test(int arr[])
{
print("数组的长度:%d\n",sizeof(arr)/sizeof(int));//输出结果是错的,就是因为数组作为参数传递时退化为指针了
}
int main()
{
int a[]={0,1,2,3};
test(a);
return 0;
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值