1. 程式人生 > >sizeof( )與strlen( )測陣列的差異分析

sizeof( )與strlen( )測陣列的差異分析

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 = 6 j = 6;len_j = 6 說明:sizeof(a)測出來要多一個‘\0’. sizeof()返回的是變數聲明後所佔的記憶體數,不是實際長度,此外sizeof不是函式,僅僅是一個取位元組運算子,strlen是函式。 strlen()計算給定字串的長度,不包括'\0'在內. *************************************************************/