sizeof、strlen、length() 区别于联系


    char szTest[] = "Test string length";
    std::string strTest = "Test string length";

    // sizeof 的作用为返回对象在内存中所占空间真实大小
    int nSzSize = sizeof(szTest);       // 19,包含空字符,即18+1
    int nlen = strlen(szTest);          // 18,传入strlen的指针必须指向以空字符结尾的数组
    int nStrSize = sizeof(std::string);     // 28,与编译器有关,且在sizeof(func)内的func函数不会被调用执行,返回的值为func()的返回值类型
    int nStrSize2 = sizeof strTest;         // 28,变量或对象支持不加括号,类型不支持。
    int nStrLen = strTest.length();     // 18,与size没有区别,只是一个代表是字符串类型,一个代表string是一个容器
    int n = strTest.size(); // 18
    return 0;

猜你喜欢

转载自blog.csdn.net/Lasuerte/article/details/82348496