C++ Lookup of i changed for ISO

前端 未结 3 1330
我寻月下人不归
我寻月下人不归 2021-01-25 00:42

I have the following code for a dictionary.

void Dictionary::translate(char out_s[], const char s[])
{

for (int i=0;i

        
相关标签:
3条回答
  • 2021-01-25 01:07

    Not "for iso" (perhaps read the entire error message...), but for ISO C++. The problem is that the scope of the i variable is only the for loop (since its definition is inside the initialization of the loop). Since it seems you want to use it outside the loop, declare it like so:

    int i;
    for (i = 0; i < foo; i++) {
        // ...
    }
    
    do_safe_stuff_with(i); // valid
    
    0 讨论(0)
  • 2021-01-25 01:11

    When you do e.g.

    for (int i=0;i<numEntries;i++)
    

    then the variable i is local to the loop only, you can't really use it outside the loop.

    If you want to use i outside the loop, then you need to declare it outside the loop:

    int i;
    for (i=0;i<numEntries;i++)
    
    0 讨论(0)
  • 2021-01-25 01:25

    i is declared in the for loop condition clause. it is not visible at the if clause after for loop.

    try:

    int i = 0;
    for (;i<numEntries;i++)
    {
       if (strcmp(englishWord[i], s)==0)
           break;
    }
    if (i<numEntries)
    
    0 讨论(0)
提交回复
热议问题