c++for循环为什么可以这么用?

for (string str; cin >> str; cout << str << endl);
跟C语言的不一样?比如C语言中for(i = 0;i < 5;i++)

#include using namespace std;char msg[] ="Now is the time.\n";int main(){ char * cp; int i; for(cp = msg; cp[0] ; cp++) cout return 0;}cp[0]是什么意思?

在for循环中,for(expression1;expression2;expression3)......
答案就在这里:c++for循环小疑惑
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?

一样,只不过cout、cin是c++的内容。
下面是c的内容,实现功能都一样:
for的用法很灵活,但是有的写法可读性很差。

    int a[10],i,j,sum;
    for(i=0,sum=0;i<10;i++)
    {
        j=i;
        a[i]=i+2*j;
        sum+=a[i];
    }
    printf("sum=%d\n",sum);
    int a[10],i,j,sum;
    for(i=0,sum=0;i<10;j=i, a[i]=i+2*j,sum+=a[i],i++);
    printf("sum=%d\n",sum);

    int a[10],i,j,sum;
    for(i=0,sum=0; j=i,a[i]=i+2*j,sum+=a[i],i<9;i++) ;
    printf("sum=%d\n",sum); 

cout << str << endl 是C++的内容,for的用法和c是一样的

for循环在C语言和c++中都可以用的,for (string str; cin >> str; cout << str << endl); 其中cin>>str;这条语句为真的话,继续循环,并且循环一次打印一次,
为假的话就退出循环。

for的机制是
1、执行第一个;前的语句
2、对第二个;前的表达式进行判断,为真则继续循环,否则结束循环
3、执行一次循环后,执行第2个;后的语句,然后跳到2