2016-09-27 31 views
-2

This is a snippet from my code editor。我試圖運行這段代碼,並且無法理解while循環如何通過字符串。請解釋一下。什麼是string ++在for循環中在C++中實現strlen時在此處

#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; 
} 
+0

請將郵政編碼作爲文字,而不是作爲圖片在這裏。 –

+0

我很抱歉給您帶來不便。您能否請求幫助 –

+1

您可以複製代碼粘貼到問題中,選擇它並按下CTRL-K。 –

回答

1

指針本質上是一個變量,它表示存儲某個值的內存中的特定位置,而不是實際值本身。

你的函數需要一個字符指針char*作爲參數。因此,這個論點是存儲器中某個位置,其中函數將假定存儲一個字符。 while循環然後檢查內存中該位置的值以查看存儲在那裏的值是否爲'\0'

string++正在將字符指針前進到內存中的下一個位置,while循環將再次檢查存儲在下一個位置的值。把它看作是概念性地移動你檢查的任何字符串中的字符。

例如,如果您正在檢查字符串"abcd\0",string將指向'a'。然後string++將使string指向'b',然後到'c',然後到'd'

循環將重複進行,直至位置指向string持有'\0'值。

+0

謝謝雷米。你解釋得很好 –