c++ while(*str++)循环问题!
#include<iostream>usingspacenamestd;constinta=10;intmain(){charinput[a];cout<<"entera...
#include <iostream>
using spacename std;
const int a=10;
int main()
{
char input[a];
cout<<"enter a string: ";
cin.get(input,a); //如果在这里输入的是 "nice pant"
cont char* str=input;
int count=0 ;
while(*str++)
count++;
cout<<count;
return 0;
}
最后输出的count是9.
我想知道的是str[8]的值是t,再++后的值是str[9]=='\0'(也就是0)应该判定为假,会跳过count++的(也就是说count的值为8)。
在VS2010中测试的!
谁知道的说下,也需我有个小知识点忘了。在下初学者,别鄙视请解惑!
我知道了,想到了。while(*str++)第一次判定的时候下标为str[0]为真,count+1.第二次判定的时候下标为str[1]为真,count+1==2,所以到str[8]的时候count==9.
唉,太大意了,这么笨的问题想了这么久! 展开
using spacename std;
const int a=10;
int main()
{
char input[a];
cout<<"enter a string: ";
cin.get(input,a); //如果在这里输入的是 "nice pant"
cont char* str=input;
int count=0 ;
while(*str++)
count++;
cout<<count;
return 0;
}
最后输出的count是9.
我想知道的是str[8]的值是t,再++后的值是str[9]=='\0'(也就是0)应该判定为假,会跳过count++的(也就是说count的值为8)。
在VS2010中测试的!
谁知道的说下,也需我有个小知识点忘了。在下初学者,别鄙视请解惑!
我知道了,想到了。while(*str++)第一次判定的时候下标为str[0]为真,count+1.第二次判定的时候下标为str[1]为真,count+1==2,所以到str[8]的时候count==9.
唉,太大意了,这么笨的问题想了这么久! 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询