必填的用户名 发表于 2018-12-30 15:48:44

for循环中的一个小问题

int Count_Digit ( const int N, const int D )
{
int cs = 0;
int tmp = N;
for(int i = tmp%10; tmp; tmp = tmp/10)
{
    if(i == D) cs++;
}
return cs;
}
我想问的是,在这的函数的for循环中,为什么i的值不会变化,tmp不是随着循环变成tmp/10了吗?

行客 发表于 2018-12-30 16:02:52

for(表达式1;表达式2;表达式3){内语句4}执行顺序是这样的:第一次是表达式1、表达式2、内语句4、表达式3;第二次及后是表达式2、内语句4、表达式3;后续以此类推,直到循环执行完。表达式1只是执行一次。

所以,int i = tmp%10是表达式1,只是一开始执行一次,而后续没有做任何调整,因此不会再有变化。

BngThea 发表于 2018-12-30 16:07:25

只初始化一次

必填的用户名 发表于 2018-12-30 16:22:06

行客 发表于 2018-12-30 16:02
for(表达式1;表达式2;表达式3){内语句4}执行顺序是这样的:第一次是表达式1、表达式2、内语句4、表达式3; ...

哦~,糊涂了
页: [1]
查看完整版本: for循环中的一个小问题