本帖最后由 番杰 于 2021-10-28 17:50 编辑
(1)
- printf("strlen(b) = %d\n", strlen(b));
复制代码
首先,需要知道strlen();这个函数,这个函数是用来判断字符串的长度,
而如何判断的呢?
答,自字符串是以'\0'结尾的,所以strlen()函数,在遇到‘\0’时,就会返回‘\0’前的字符个数。
所以,strlen()函数判断b的长度时,在遇到第一个‘\0’(即hello后的)就会返回数值,
H、e、l、l、o一共5个字符,所以strlen(b)的返回值为5,所以也就打印出5;
(2)
- printf("sizeof(b) = %d\n", sizeof(b));
复制代码
sizeof()计算数据的长度,其中b是char的数组,它里面有几个字符就是有多长,
仔细一数:12个字符,那长度就为12.
(3)
- printf("strlen(a) = %d\n", strlen(a));
复制代码
这个a是一个指针指向b,简单点说就跟1一样。也是5。
(4)
- printf("sizeof(a) = %d\n", sizeof(a));
复制代码
a是一个指针,无论它指向什么,它的大小都为int,
int大小因编译器不同而不同,你的是4字节,所以就打印出4
(5)
- printf("strlen(c) = %d\n", strlen(c));
复制代码
这个跟1一样,strlen()函数寻找‘\0’,
没有找到,发现这个c根本就不是字符串,哪来的长度!
所以妥妥的返回0,所以就打印出0.
(6)
- printf("sizeof(c) = %d\n", sizeof(c));
复制代码
这个就很简单了,打印出c数组的长度,
定义已经给了char c[255] = {0};
所以c是有255个char类型组成的;
所以长度就是255呗。