C语言的问题

main()
{int x,y,z;
x=y=1;
z=x++,y++,++y;………………………………(1)
printf("%d,%d,%d\n",x,y,z);

结果是 2,3,1
(1)书上的解释是z取第二个表达式的值,为什么不是第三个?

请解释的详细点 一个初学者的疑惑

第1个回答  2009-02-11
输出结果是对的,但是解释不对。

z=x++,y++,++y;
//因为是x++,所以是先把x赋值给z,然后执行x++,再执行y++,++y;
//如果是++x,就先执行++x,再赋值给z,
所以x=2,y=3,z=1
第2个回答  2009-02-11
多个表达式可以用逗号组合成一个表达式,即逗号表达式。
逗号运算符带两个操作数,返回值是右操作数。
逗号表达式的一般形式是:"表达式1,表达式2,……,表达式n",它的值是取表达式n的值。
逗号运算符的用途仅在于解决只能出现一个表达式的地方却要出现多个表达式的问题。

参考资料:http://www.zuowenw.com/jsjks/pc2/Cjiajia/Cjjfd/200811/764711.html

第3个回答  2009-02-11
这个题首先你要知道结合性的问题,赋值是右结合,所以(1)应该从右往左看,所以z取得值就是x的值,x++是第三条语句。

你可以试试:
a=3
printf(“%d,%d,%d\n”,a++,a++,a++);

结果是5,4,3
第4个回答  2009-02-11
第一个
由于逗号表达式的优先级低,上式等效z=x++;y++;++y;
若想z等于第三个,应写成
z=(x++,y++,++y);
逗号表达式的值为最后一个表达式的值本回答被提问者采纳
第5个回答  2009-02-11
书错了,是最后一个,逗号表达式取最后一个的值作为式子的值

c语言常见问题有哪些
1、书写标识符时,忽略了大小写字母的区别。2、忽略了变量的类型,进行了不合法的运算。3、将字符常量与字符串常量混淆。4、忽略了等号与双等号的区别。5、忘记加分号。6、输入变量时忘记加地址运算符。7、输入数据的方式与要求不符。8、输入字符的格式与要求不一致。9、输入输出的数据类型与所用格式...

C语言的问题!
5,最后一步是,当程序以混合语言编写的程序链接时,在FORTRAN库之前指定C库。重新解决了秋天的飞行问题。

C语言编程常见十大面试问题(内附答案)
C语言编程面试中常遇到的十大问题,下面就逐一解答:1. 变量\/函数声明与定义的区别:变量\/函数声明告知程序它们的存在,如类型和参数信息,但不分配内存。定义则同时包含声明并为变量分配内存,定义是声明的扩展或细化操作。2. C中的存储类说明符:主要有auto、register、static和extern,它们分别定义了变量...

C语言的运行出现不了的问题是什么问题??
环境问题:代码在不同的操作系统、编译器或硬件平台上可能存在差异,导致代码无法正常运行。可以检查编译器和操作系统的兼容性,或在特定的环境中运行代码。逻辑问题:代码逻辑存在问题,导致代码无法正确执行。可以检查代码逻辑是否正确,是否存在死循环、递归深度过大等问题。综上,C语言代码运行不出现象可能...

c语言常见问题有哪些?
但C语言中,“=”是赋值运算符,“==”是关系运算符。如:if (a==3)a=b;前者是进行比较,a是否和3相等,后者表示如果a和3相等,把b值赋给a。由于习惯问题,初学者往往会犯这样的错误。5.忘记加分号。分号是C语句中不可缺少的一部分,语句末尾必须有分号。a=1 b=2 编译时,编译程序在“a=...

c语言排列组合问题,怎么算?
只要C的上面是0,不管下面是什么都等于1。分子是从5开始递减的两个数字相乘,即5*4;分母为从1开始递增的两个数字,即1*2;所以结果为5*4÷(1*2)=10;同理:c53=5*4*3÷(1*2*3)=10 c54=5*4*3*2÷(1*2*3*4)=5 从n个不同元素中,任取m(m≤n,m与n均为自然数,下同)个...

c语言能解决哪些问题
C语言能解决的问题 一、系统开发问题 C语言首先是一种通用编程语言,它可以用于开发各种类型的系统软件和应用程序。例如,操作系统、编译器、驱动等核心组件大多使用C语言开发,因其具有直接访问内存、进行复杂运算和进行底层设备操作的能力。此外,C语言还常被用于开发嵌入式系统,如智能家居控制、工业控制等...

求c语言一些常见问题,
但C语言中,“=”是赋值运算符,“==”是关系运算符。如:if (a==3) a=b;前者是进行比较,a是否和3相等,后者表示如果a和3相等,把b值赋给a。由于习惯问题,初学者往往会犯这样的错误。5.忘记加分号。分号是C语句中不可缺少的一部分,语句末尾必须有分号。a=1 b=2 编译时,编译程序在“...

c语言面试经常问到的问题有哪些?
c语言面试经常问到的问题有:1、C语言的主要特征是什么?C是一种过程语言。C语言的主要功能包括对内存的低级访问,简单的关键字集和简洁的样式。这些功能使其适用于诸如操作系统或编译器开发之类的系统编程。2、i ++和++i有什么区别?1)表达式“i ++”返回旧值,然后递增i。表达式++i递增该值...

计算机程序c语言面试常见问题
c语言作为计算机程序设计语言,是考察软件工程师应聘者技术能力的关键。计算机程序c语言面试常见问题,我们来看看。c语言 面试题 精选(笔试)单选题部分 1、C语言程序的基本单位是___A.语句 B.函数 C.程序行 D.字符 答案:B 2、C语言程序由()组成 A.子程序 B.过程 C.函数 D.主程序段程序 ...

相似回答
大家正在搜