sizeof( )与strlen( )测数组的差异分析

来源:互联网 发布:java基本功编程题 编辑:程序博客网 时间:2024/05/21 09:30

2、对两个数组a和b进行如下初始化
char a[]=“ABCDEF”; char b[]={ ‘A’,’B’,’C’,’D’,’E’,’F’};
数组长度如何判断?

#include<stdio.h>#include<string.h>int main(int argc, const char *argv[]){    char a[]="ABCDEF";      char b[]={ 'A','B','C','D','E','F'};     int i = 0, j = 0;    int len_i,len_j;    i = sizeof(a);    len_i = strlen(a);    j = sizeof(b);    len_j = strlen(b);    printf("i = %d;len_i = %d\n",i,len_i);    printf("j = %d;len_j = %d\n",j,len_j);    return 0;}/***********************************************************测试结果:i = 7;len_i = 6j = 6;len_j = 6说明:sizeof(a)测出来要多一个‘\0’.sizeof()返回的是变量声明后所占的内存数,不是实际长度,此外sizeof不是函数,仅仅是一个取字节运算符,strlen是函数。strlen()计算给定字符串的长度,不包括'\0'在内.*************************************************************/
0 0