sygence 发表于 2020-4-14 10:23:06

关于sizeof()对字符数组

#include<stdio.h>
#include<stdio.h>

int main()
{
        char s[]="1234567";
        printf("%d,%d",sizeof(s),strlen(s));
        return 0 ;
}

打印的 sizeof(s)为什么为8?

suchocolate 发表于 2020-4-14 10:29:24

结尾自动加\0,算一个

zltzlt 发表于 2020-4-14 13:03:45

每个 char 占一个字节,结尾又有个 '\0',所以是 8

孤世星辰 发表于 2020-4-14 16:21:26

strlen 函数用于返回指定字符串的长度。

C 语言字符串的长度取决于结束符('\0')的位置。

一个字符串的长度指的是从起始位置到结束符的字符个数(不包含结束符本身)。

sizeof是返回尺寸大小他包括("\0")

1241702927 发表于 2020-4-14 18:38:39

sizeof()打印的时候包含‘\0’,strlen()打印的时候不包含‘\0’
页: [1]
查看完整版本: 关于sizeof()对字符数组