C语言中的 sizeof 和 strlen ,你弄明白了吗?

本文探讨了在32位和64位计算机环境下,C语言中`sizeof`和`strlen`两个关键操作的区别和应用。`sizeof`用于获取变量或类型所占用的内存大小,而`strlen`则计算字符串的长度,不包括结束符''。理解两者差异对于高效编程至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <stdio.h>
/*
	sizeof
		是一个操作符,用来计算变量(或类型)所占内存空间的大小,不关注内存中存放的具体内容。
		单位是字节。

	strlen
		是一个库函数,是专门求字符串的长度,只能针对字符串
		从参数给定的地址向后一直找'\0',统计'\0'之前出现的字符的个数

*/
int main() {
	char arr[] = "hello bit";
	printf("%d %d\n",sizeof(arr),strlen(arr));  // 10*1 = 10     9
	//sizeof(arr)中arr是整个数组,因为存储的是字符串,在内存中必须以'\0'结尾,所以arr实际总共有10个char元素,包含最后的'\0'。
	//strlen(arr)计算长度只计算'\0'之前的字符个数,所以长度是9。

	//对于普通变量或者类型,计算sizeof
	char c = 'k';
	int i = 666;
	printf("%d %d\n",sizeof(c),sizeof(i)); // 1 4
	printf("%d %d %d %d\n",sizeof(char),sizeof(int), sizeof(short), sizeof(float)); // 1 4 2 4

	//对于指针,计算sizeof,至于计算机cpu有关,x86(32位)就是4字节,x64(64位)就是8字节
	char* pc = &c;
	char* pi = &i;
	printf("%d %d\n",sizeof(pc),sizeof(pi));

	return 0;
}

32位计算机运行:
在这里插入图片描述

64位计算机运行:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值