C中的sizeof运算符与size_t类型

sizeof运算符用来返回对应数据类型占用空间大小,单位为字节。用法如下:

#include <stdio.h>

int main(void)
{
	printf("char类型所占字节数:%d\n", sizeof(char));
	printf("short类型所占字节数:%d\n", sizeof(short));
	printf("int类型所占字节数:%d\n", sizeof(int));
	printf("long类型所占字节数:%d\n", sizeof(long));
	printf("float类型所占字节数:%d\n", sizeof(float));
	printf("double类型所占字节数:%d\n", sizeof(double));
	
	return 0;
}
输出如下:
char类型所占字节数:1
short类型所占字节数:2
int类型所占字节数:4
long类型所占字节数:4
float类型所占字节数:4
double类型所占字节数:8

除了sizeof()之外针对变量还存在另外一种调用方式:

#include <stdio.h>

int main(void)
{
	int num = 10;
	printf("int变量所占字节数:%d\n", sizeof num);
	printf("int变量所占字节数:%d\n", sizeof(num));
	
	return 0;
}
输入如下:
int变量所占字节数:4
int变量所占字节数:4

这两种方式有一点区别,sizeof()不管针对类型还是变量都是生效的,第二种方式sizeof后只能跟变量不能为数据类型,如上sizeof num能运行成功,而用sizeof int的话铁定凉凉。

再来聊聊size_t这个类型,这是sizeof方法返回值所属类型,这并不是一个新的数据类型,聊它之前先扯一扯typedef,C中typedef可以给变量起别名。

#include <stdio.h>

typedef double dbl;

int main(void)
{	
	dbl num2 = 6.66;
	printf("double变量所占字节数:%d\n", sizeof(num2));
	
	return 0;
}

如上,其中dbl就是double的别名,比如你有个好兄弟叫王二,小名叫二狗子,你不管喊王二还是二狗子指的都是他。同理上述代码中的dbl其实就是double,那么num2其实就是double类型。

这一点理解了的话size_t这个类型就好理解了,这家伙就是unsigned  int类型的别名。也就是说C中肯定有这么一串代码

typedef unsigned int size_t;
#include <stdio.h>

typedef double dbl;

int main(void)
{
    dbl num2 = 6.66;
	
	size_t size = sizeof(num2);
	printf("double变量所占字节数:%d\n", size);
	
	return 0;
}

所以这家伙其实就是unsigned int。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值