一个输出问题?
int i, j;char array[] = {'I', 'l', 'f', 'i', 's', 'h', 'C', '\0'};
i = sizeof(array);
j = strlen(array);
printf("%d %d", i, j);
输出是8和7怎么小甲鱼的答案是9和8呢????? sizeof计算变量的字节数
strlen计算字符串的长度
按照你的这段程序就是8和7
你应该把小甲鱼答案是9 和8的源码也贴出来
sizeof计算变量占多大内存字节数。
strlen计算字符串的长度,字符串是以'\0'结束的。并且计算的长度不包括'\0'。对于小甲鱼的源码。要看了才知道。为什么是9和8了 sizeof是计算变量的字节数的、
strlen才是计算字符串长度的哦,看你想要什么功能了,望采纳。 ryxcaixia 发表于 2015-8-27 08:38
sizeof计算变量的字节数
strlen计算字符串的长度
《零基础入门学习C语言》第六章考核 7. 以下程序段的输出结果是小甲鱼的答案是d 上边就是源码。我是新手才不确定自己是不是对的。 你复制源码输进去就ok了,不用纠结。 你两个源码可能不一样,可能少个字母 楼上说的都对 sswan512 发表于 2015-8-30 21:22
楼上说的都对
表示不同意sizeof(array);不管有几个字符都是8;而strlen(array);才和字符个数相关的. sizeof返回定义arr数组时,编译器为其分配的数组空间大小,不关心里面存了多少数据。
strlen只关心存储的数据内容,不关心空间的大小和类型。
嗓子坏咯 发表于 2015-8-31 11:03
sizeof返回定义arr数组时,编译器为其分配的数组空间大小,不关心里面存了多少数据。
strlen只关心存储 ...
没找到你说的视频内容 嗓子坏咯 发表于 2015-8-31 11:03
sizeof返回定义arr数组时,编译器为其分配的数组空间大小,不关心里面存了多少数据。
strlen只关心存储 ...
你怎么则么清楚,是考核里边的 第六章考核 7.题 sizeof是计算字节数的,strlen是计算字符串的长度的,字符串长度不包括'\0' 看看sizeof和strlen的区别,你就会知道怎么回事了
'\0'在内存中占了1个字节,但在字符串中\0不显示不占位 因为 sizeof 测量的是数组的长度
而strlen 是测量字符串的长度 不计\0 sizeof计算变量的字节数,strlen计算字符串的长度 我在想会不会是小甲鱼同志误口了
页:
[1]