简体   繁体   English

size_t返回指针减法

[英]size_t return pointer subtraction

I want to rthe following error message......error: invalid conversion from 'const char*' to 'size_t' 我想以下错误消息......错误:从'const char *'无效转换为'size_t'

    return 0;
}

size_t strlen(const char *s1)
{



    return s1 - 0;
}

Subtracting zero from a pointer does not change the pointer, the same way that subtracting zero from a number does not change a number. 从指针中减去零不会改变指针,就像从数字中减去零不会改变数字一样。

You should subtract the original pointer, not zero, to get the length: 您应该减去原始指针而不是零,以获得长度:

size_t strlen(const char *s1) {
    const char *orig = s1;
    while (*s1) {
        s1++;
    }
    return s1 - orig;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM