sizeof 和 strlen

C语言大小与长度函数详解
本文详细介绍了C语言中用于获取对象或类型所占字节数的sizeof运算符及获取字符串长度的strlen函数。通过具体示例展示了不同数据类型、指针、数组和结构体在32位系统中的字节数表现,以及字符串长度计算方式。

一、sizeof获取一个对象或者类型所占的字节数


1、普通类型

char、int、long、double等

返回的字节数和系统有关


2、指针类型

指针类型存放的其实就是地址,32为系统中其所占字节数都为4


3、数组

数组所占字节数等于 数组类型字节数*数组长度


4、struct

所占字节总数为最大成员所占字节数的倍数;且最大成员之前所有成员所占的总字节数,也必须是该最大成员所占字节数的倍数。


二、strlen获取字符串的长度,以"\0"为结束标志,并且不将其计算在内。


	int a =0;
	char c =0;
	int *pa = &a;
	char* pc =&c;
	int sa[10];
	char sc[10]={1,1,1,1,1};
	char*psc=sc;

	struct sts1{
	    char tc;
	    int ta;
	};
	struct sts2{
	    char tc;
	    char tc2;
	    int ta;
	};	


	printf("a %d\n",sizeof(a));        //4    
	printf("c %d\n",sizeof(c));        //1
	printf("pa %d\n",sizeof(pa));      //4
	printf("pc %d\n",sizeof(pc));      //4
	printf("sa %d\n",sizeof(sa));      //40
	printf("sc %d\n",sizeof(sc));      //10
	printf("psc %d\n",sizeof(psc));    //4
	printf("strlen psc %d\n",strlen(psc));  //5
	printf("sts1 %d\n",sizeof(struct sts1));     //8
	printf("sts2 %d\n",sizeof(struct sts2));     //8

//~End~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值