sizeof定义
sizeof 运算符。表达式 sizeof(type) 得到某个类型或某个变量在特定平台上的准确存储大小,返回值unsigned int 类型
strlen定义
strlen是个函数,函数原型:size_t strlen(const char *str),用来计算字符串的实际长度(不包括‘\0'在内),函数的返回值size_t 为unsigned int 类型,
例子:
#include<stdio.h> #include<stdlib.h> #include<string.h> #define PI 3.14159265 const int b = 50000; int main(void) { char a[] = "hello world"; int *c ="asfdgh"; unsigned int d = sizeof(c); printf("%ld,%ld,%ld,%ld",sizeof(c),strlen(c),sizeof(a),strlen(a));
//sizeof 是用来计算某种类型在特定平台所占字节大小,也可以用来计算字符串长度
//strlen 是处理字符串的库函数,在string.h中声明,用来计算字符串的实际长度
return 0; }
1 | 运行结果:<br>8 6 12 11 |
#include<stdio.h> int main() { // char ss[4][10]; // char ss[4]="dddd"; int i; int len ,len1; char site[] = "RUNOO B"; len = sizeof(site); len1 = strlen(site); printf("len :%d,len1 :%d\n",len,len1); printf("%s\n ",site); for(i=0;i<sizeof(site);i++) { printf("%p\n",(site+i)); } }
运算结果:
len :9,len1 :8
RUNOO B
0x7ffcaac2c0cf
0x7ffcaac2c0d0
0x7ffcaac2c0d1
0x7ffcaac2c0d2
0x7ffcaac2c0d3
0x7ffcaac2c0d4
0x7ffcaac2c0d5
0x7ffcaac2c0d6
0x7ffcaac2c0d7
int * 在64位操作系统内存空间是8byte,所以sizeof(a)=8
总结:
字符串在计算机内存中存储时,编译器会自动添加一个‘/0'作为字符串结束符,在 C 语言中,字符串实际上是使用空字符 \0 结尾的一维字符数组。因此,\0 是用于标记字符串的结束。
sizeof 计算结果包括’\0'在内,而strlen 计算结果遇到‘/0'就结束,计算的结果不包括’/0';
空字符(Null character)又称结束符,缩写 NUL,是一个数值为 0 的控制字符,\0 是转义字符,意思是告诉编译器,这不是字符 0,而是空字符。您不需要把 null 字符放在字符串常量的末尾。C 编译器会在初始化数组时,自动把 \0 放在字符串的末尾。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!