#include "stdio.h" #include "stdlib.h" #include "string.h" void Func(char str[100]) { printf("sizeof(str)=%d\n", sizeof(str)); printf("strlen(str)=%d\n",strlen(str)); } main( ) { char s[]="Hello"; Func(s); printf("sizeof(s)=%d\n", sizeof(s)); }
这段小程序的输出结果是4 5 6
原因分析:sizeof(str),其中str为字符串的头指针,指针占的空间为4字节,即为4 strlen(str),计算str的有效长度,hello长度为5,输出为5; sizeof(s),s 是一个字符串,此时,sizeof 计算的是这个字符串的长度,除了hello占5个字节以外,还有一个字节的'\0'表示字符串结束,总共为6;