字符串大小总结sizeof和strlen

    xiaoxiao2021-12-03  63

    char str[] = "313233414243";    //系统会在str后面加一个字符串结束符 ‘\0’ std::cout<<"strlen(str): "<<strlen(str)<<std::endl;  //12个字节        使用strlen不计算字符串结束符 ‘\0’ std::cout<<"sizeof(str): "<<sizeof(str)<<std::endl;     //13个字节    使用sizeof计算字符串结束符  ‘\0’ =================================== int main(int argc, char * argv[]) { int nRet = 0; char *ptr = "\0"; printf("sizeof1:%d\n", sizeof(ptr));     <------ 指针大小, 4字节 printf("strlen2:%d\n", strlen(ptr));     <----- strlen 计算字符串长度,到\0结束 printf("sizeof3:%d\n", sizeof("\0"));    <---- sizeof 计算包括结束符  "\0" 实际在内存是  \0\0 (最后一个编译器加入的字符串结束符), 所以结果是2 printf("strlen4:%d\n", strlen("\0")); printf("sizeof5:%d\n", sizeof(" ")); printf("strlen6:%d\n", strlen(" ")); printf("sizeof7:%d\n", sizeof("")); printf("strlen8:%d\n", strlen("")); } 输出: sizeof1:4 strlen2:0 sizeof3:2 strlen4:0 sizeof5:2 strlen6:1 sizeof7:1 strlen8:0

    转载请注明原文地址: https://ju.6miu.com/read-680187.html

    最新回复(0)