易百教程

编写程序使用sizeof和strlen计算char数组的长度

编写程序使用sizeofstrlen计算char数组的长度。

示例代码

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

int main()
{
    char string[] = "this is a test?";

    printf(""%s" 字符串的大小是:%lu 个字节,\n",
            string,sizeof(string));
    printf("长度为:%ld.\n",strlen(string));
    return(0);
}

执行上面示例代码,得到以下结果:

hema@yiibai:~/book$ gcc main.c
hema@yiibai:~/book$ ./a.out
"this is a test?" 字符串的大小是:16 个字节,
长度为:15.

创建数组时,程序会在内存中分配空间来保存数组的值。

分配基于数组中每个元素的大小。

因此,包含15个字符(包括\0NULL)的char数组占用15个字节的存储空间,但字符串的长度仍然只有14个字符(字节)。