C语言语句“i=j=((i=3)++) ;”是什么意思啊

来源:百度知道 编辑:UC知道 时间:2024/06/04 16:21:26
#include<stdio.h>
main()
{
int i=1,j=1;
i=j=((i=3)++) ;

printf("%f",i,j);
getch();
}

以上的程序有错吗?错在哪里?

以上的程序有错。
我来一条一条的解释:
(i=3)++ 指的是将3赋值给i,因为有括号,且+号在括号外面,
所以此处指的是赋值后的i,++后,i的值变成了4,
j=((i=3)++),这里呢,就是将值变成了4后的i赋值给j,
你错误在于后面,简化一下就是i=((i=3)++),即i=(i=4),
这样岂不是多余?
另外,我查询了一下C的函数库,getch()这样的函数并没有出现过,
不知道是不是你自己定义的,还是写的时候没有注意少写了几个字母。

#include<stdio.h>
main()
{
int i=1,j=1;
i=j=((i=3)++) ;

printf("%d\t%d\n",i,j);
//getch();
}

forget

程序的目的?程序太落索了