什么是string ++在for循环中执行,同时在c ++中实现strlen

时间:2016-09-27 20:10:37

标签: c++ strlen

This is a snippet from my code editor。我试图运行此代码,无法理解while循环如何通过这里的字符串。请解释一下。

#include <iostream>

using namespace std;

int my_strlen(char *string){
    int length = 0;
    while(*string !='\0'){
        length++;
        cout << string <<endl;
        string++;
    }
    return(length);
}

int main() {
    my_strlen("this is a test");
    return 0;
}

1 个答案:

答案 0 :(得分:1)

指针本质上是一个变量,表示存储器中存储某些值的特定位置,而不是实际值本身。

您的函数将字符指针char*作为参数。因此,该参数是存储器中某些位置,其中函数将假定存储字符。然后while循环检查内存中的值,以查看存储在那里的值是否为'\0'

string++正在将字符指针前进到内存中的下一个位置,其中while循环将再次检查存储在下一个位置的值。可以把它想象成概念性地移动你正在检查的任何字符串中的字符。

例如,如果您要检查字符串"abcd\0"string将指向'a'。然后,string++string指向'b',然后指向'c',然后指向'd'等。

循环将重复,直到string指向的位置保留'\0'的值。