1楼:龚炜林
你好!1、等号是赋值运算,这就意味着等号左边必须是被赋值的变量,显然a+7是表达式,而不是变量。
2、整形运算是只取整数部分的,你定义的c1,c2,c3均是整数,所以;c3=1.0/c2*c1;进行的是整形运算,那么只取整数部分就是0.
3、注意:在浮点型与整形等混合运算时,系统会将所有类型的数据转化成double型的来运算,然后把结果再根据需要赋给响应变量。
对于你的表达式,c是float的,所以最后结果是要被转化成float赋值给c。
4、逗号运算符,又称顺序求值运算符,但是要区分这个顺序,这里的顺序指的是表达式,逗号运算符使用形式是:表达式1,表达式2,......
这就是说逗号隔开的是表达式,那么对于i=(a=2*3,a*5),a+6;就可以理解了:i=(a=2*3,a*5)是一个表达式,a+6是另外一个表达式。
2楼:匿名用户
一、赋值号左边必然是变量, a+7=c+b是错误的。等号是赋值运算,这就意味着等号左边必须是被赋值的变量,显然a+7是表达式,而不是变量。
二、赋值语句是由赋值表达式再加上分号构成的表达式语句。
其一般形式为: 变量=表达式;
在赋值语句的使用中需要注意以下几点:
1. 由于在赋值符“=”右边的表达式也可以又是一个赋值表达式, 因此,下述形式 变量=(变量=表达式); 是成立的,从而形成嵌套的情形。 其之后的一般形式为:变量=变量=…=表达式;
例如: a=b=c=d=e=5; 按照赋值运算符的右接合性,因此实际上等效于: e=5; d=e; c=d; b=c; a=b;
2. 注意在变量说明中给变量赋初值和赋值语句的区别。 给变量赋初值是变量说明的一部分,赋初值后的变量与其后的其它同类变量之间仍必须用逗号间隔,而赋值语句则必须用分号结尾。
例如: int a=5,b,c;
3. 在变量说明中,不允许连续给多个变量赋初值。 如下述说明是错误的: int a=b=c=5 必须写为 int a=5,b=5,c=5; 而赋值语句允许连续赋值。
4. 注意赋值表达式和赋值语句的区别。 赋值表达式是一种表达式,它可以出现在任何允许表达式出现的地方,而赋值语句则不能。
下述语句是合法的: if((x=y+5)>0) z=x; 语句的功能是,若表达式x=y+5大于0则z=x。 下述语句是非法的:
if((x=y+5;)>0) z=x; 因为x=y+5;是语句,不能出现在表达式中。
3楼:校花丶窼頿齔
这个式子会从右到左依次赋值
c语言题目:若变量已正确定义并赋值,为什么“a=a+7=c+b”不符合c语言语法的表达式?
4楼:匿名用户
a+7=c+b是错的。
等号左边只能是变量,不能有常量。例如:7=b; 这样赋值是错的
5楼:天地梅花开赵
是错的。
等号左边只能是变量,不能有常量。
c语言赋值语句"a=(7+b,b++,a+7)"语法错在**?
6楼:黄邦勇帅哥哥
少个分号也是一个错误,但可能不是
楼主真正想问的错误。
依楼主题意,这是一个赋值专语句,属既然是赋值语句,那么也就是说变量a还没有初始,因此你的这个语句就是错误的。解释如下
a=(7+b,b++,a+7) 假设b是有初值的,因此7+b;和b++都没有错误,但是a是正在被初始化的变量,因此a还没有初值,因此a+7就是错误的,因为a还没有初值,所以在进行初始化之前不可以进行运算。所以这里是错误的。
7楼:匿名用户
后面缺少分copy号来结束这个赋值语句bai。
a=(7+b,b++,a+7);
其实这个赋值语句相当du于先后执行以下zhi语句:
7+b; //这个语句无意义
b++;
a=a+7;
也就是将最后dao一个a+7的值付给a。
因为连续用逗号分割的若干个表达式的值等于最后一个表达式的值.
8楼:匿名用户
这是一个用逗号表达式赋值的语句,表意不明确。
因为c标准并没有规定逗号表达式的求值顺序,所以可能先计算b++,也可能先计算7+b,所以此语句意义是编译器有关的。
9楼:匿名用户
他是一个语句,那么就该以分号结束(;)
a=(7+b,b++,a+7);
10楼:**
少个;号 这是个语句 语句必须以;号结束
C语言数组问题,C语言新手 数组问题
1楼 千锋教育 你的 问题有以下几个 1 min和max没有初始化 2 对于a min 和a max 没有做循环参考 如下 include main printf 最大数是 d,下标是 d,最小数是 d,下标是 d n a max max a min min 2楼 天雨下凡 include void...
求大神,简单的C语言问题,求大神,一个简单的C语言问题
1楼 匿名用户 func的参数输入就是定义一个新的变量b 再将a赋值到b a的值不会变 好比执行了int b a 所以函数输出 12 y 2楼 听不清啊 程序运行后会输出 12 y c语言中实参到形参都是单向值传递的。 3楼 飘遥舞者 参数传递知识,取值传值方式不会改变原变量的值 求大神帮编写一个简...
求问下大神,C语言指针问题,大神大神,赐教啊,关于C语言指针问题。
1楼 阳光的雷咩咩 从声明可知l本身是指针类型,整个函数都是对l为头结点的链表做操作 要从函数内部改变函数参数的值,一般要用指针,这也就是为何initlist要用二级指针的原因。这个值得深入理解,我认为真正的难点在这里。 而不是后面传l为何起作用,这是你问的地方 2楼 匿名用户 不太明白你说的啥 能...