c语言新手求教几个问题1aa7cb为什么语法

2021-03-08 09:02:04 字数 2280 阅读 2289

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楼 匿名用户 不太明白你说的啥 能...