初始C语言,strlen函数和sizeof关键字的使用
Posted StrikeStarFX
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初始C语言,strlen函数和sizeof关键字的使用相关的知识,希望对你有一定的参考价值。
初学入门 纯新手
粗略认识c语言
sizeof关键字 和 starlen 函数 的区别
-------------👉sizeof
sizeof 是一个关键字,而不是一个函数,可用于一个数据类型或者表达式。
如
int main()
int arr1[] = 1,2,3,4,5,6,7,8 ;
char crr1[] = 1,2,3,4,5 ;
char crr2[] = '1','2','3','4' ;
char crr3[14] = "hello world" ;
char crr4[] = "hello world" ;
//sizeof可用一种数据类型 一个表达式
printf("int数据类型的大小为 %d", sizeof(int)); //显示整数数据类型的大小。
printf("\\n字符数据类型的大小为 %d", sizeof(char)); //显示字符数据类型的大小
printf("\\n浮动数据类型的大小为 %d\\n", sizeof(float)); //显示浮动数据类型的大小。
printf("%d\\n", sizeof(arr1));
printf("%d\\n", sizeof(arr1[2]));
printf("%d\\n", sizeof(arr1)/sizeof(arr1[0]));//计算数组内元素的个数
printf("%d\\n", sizeof(crr1));//字符串组的大小
printf("%d\\n", sizeof(crr3));
printf("%d\\n", sizeof(crr4));
]
对比可以查看输出结果:
可以看出,sizeof可以表达已经存储的数据的大,也可以精确到数组里面的一个元素
因此可以用来作为 表达数组元素个数的表达式 如上图单独空出来的代码
--------------------👉strlen函数
与sizeof的泛用性不同(毕竟一个是关键字,一个是库函数),适用于计算字符串的大小
如 ‘1’ ‘a’ 这种都可以称为一个字符
‘hello world’ 这样的一串字符称为字符串,字符串结束的标志为 ‘/0’,具体理解可以参考如下代码
int main()
char crr1[] = 1,2,3,4,5,'\\0'; //'\\0'是字符串结束的标志,不算长度,但是占内存一个字节
char crr2[] = '1','2','3','4','\\0';
char crr3[14] = "hello world" ;
char crr4[] = "hello world" ;
char crr5[] = "hello w\\0orld" ;
printf("%d\\n", strlen(crr1)); //字符串长度为5,若没有结尾的\\0 字符串的长度为随机值
printf("%d\\n", sizeof(crr1));
//对比sizeof 计算的是存储数据的大小,与\\0无关,输出结果为'6',且如果输入\\0,输入结果变为'6'
printf("%d\\n", strlen(crr2));//同上
printf("%d\\n", sizeof(crr2));
//hello world 占11个字符
printf("%d\\n", sizeof(crr3));//输出结果为14,说明sizeof计算的是数据存储在内存的大小,与内容无关
printf("%d\\n", strlen(crr3));//输出结果为11,对比说明starlen计算的仅是字符串长度
printf("%d\\n", strlen(crr4));//同理,输出结果11 \\0不算入字符串长度内
printf("%d\\n", sizeof(crr4));//输出结果为12,末尾自动补了\\0
//’\\0'占一个内存,如果格子满了,则不会自动补\\0
printf("%d\\n", strlen(crr5)); //'\\0'是字符串的结尾
printf("%d\\n", sizeof(crr5));
return 0;
对比输出图,对starlen的作用可以有更直观的理解
总结
sizeof是关键字,用于计算出的是数据所占内存的大小,可用于一个数据类型或者表达式。
即使数据为空,占了内存也会计入在内
可用sizeof计算数字的元素个数,用于解决基础数学问题
strlen 是c语言的库函数,仅用于计算字符串的长度,’\\0’是字符串结束的标志
与内存无关
新手写文,记录所学,如有帮助,可以走波三连♥♥♥,一起进步
如有错误,还请大佬指√,万分感谢
以上是关于初始C语言,strlen函数和sizeof关键字的使用的主要内容,如果未能解决你的问题,请参考以下文章