{int a=1,b=1;for( ;a--; ;)b--;printf("%d %d",a,b)}

提问:{int a=1,b=1;for( ;a--; ;)b--;printf("%d %d",a,b)}

网友回答:

所给出的程序段有些错,修改后作为一个完整的程序如下:
#include
int main()
{
int a,b=1;
for(a=1;a--;)
  b--;
  printf("%d %d",a,b);
return 0;
}

程序的运行结果正是:


解析:
for循环的执行过程分析:
①a=1,判断循环条件a--!=0成立(a--是先使用,再减1,之后a=0),执行循环体b--,b=0;
②a=0,判断循环条件a--!=0不再成立,结束循环,但是a先使用后,再减1,则a=-1。 
最后,执行printf("%d %d",a,b);将输出a、b的值,正是-1,0.

相关推荐

设有定义:int a=1, *p=&a; float b= 2.0; char c='A'; ()。

设有定义:int a=1, *p=&a; float b= 2.0; char c='A'; ()。

int x=6;执行语句X+=X-=X*X

int x=6;执行语句X+=X-=X*X

void myprint(point* posi, int n);

void myprint(point* posi, int n);

int i=12,j=25,k=56;编程序输出表达式(i=i+j,j=j+k,k=k+i)值

int i=12,j=25,k=56;编程序输出表达式(i=i+j,j=j+k,k=k+i)值

int *fun(int*){}与int fun(int*){} 的区别在哪

int *fun(int*){}与int fun(int*){} 的区别在哪

int a = 3; printf("%d,%d\n",a,(a-=a*a));

int a = 3; printf("%d,%d\n",a,(a-=a*a));

typedef int Info Type; typedef struct

typedef int Info Type; typedef struct

int x; const int &rx=x; int * constpx=&x;以下语句正确的是

int x; const int &rx=x; int * constpx=&x;以下语句正确的是

inta[4][4];int(*P)[4]=a;这个p指向的是数组a里的第4列所有元素吗?

int a[4][4];int (*P)[4]=a; 这个p指向的是数组a里的第4列所有元素吗?

分析#include int main()

分析#include int main()

为啥‘int main()'报错,求解。

为啥‘int main()'报错,求解。

判断int[]a,b;是声明了一个int型一维数组和一个int型变量b是否正确

判断int  [ ] a,b;是声明了一个int型一维数组和一个int型变量b是否正确

如果采用语句 int a[2][3] = {1,2,3,4,5} 完成一个二维数组的定

如果采用语句 int a[2][3] = {1,2,3,4,5} 完成一个二维数组的定

合法的数组定义是() A.int a[]”};

合法的数组定义是() A.int a[]”};

cin.getline(char*, int)

cin.getline(char*, int)

盒子游戏,游戏玩家专属个性阅读社区


©CopyRight 2010- 2020 BOXUU.COM Inc All Rights Reserved

鄂公网安备 35020302000061号- 鄂ICP备2020015574号-1