1楼:美好一瞬间
“=”是赋值符,
把c的值赋给b赋给a,最后a、b、c的值都相等,“==”是判断符,结果为bool型。
1、c语言其语言同其语言般区 ,赋值操作符 与 等于 运算符c语言区。
2、= 赋值 == 等于运算 说 a=b=c, 表达式运行a值赋给b、c运行完abc值相等。
3、 a=b==c,复合表达式先a值赋给b与c比较相等则返0,否则返非零值。
4、a==(b=c),复合表达式先执行括号内容(即b值赋给c)比较a、c相等则返0否则返非零值。
5、a==(b==c),复合表达式先比较b、c值相等则返0否则返非零值比较a与(b==c)返值,看c区 = 跟 ==。
6、 ps:lz程序风格且习惯引用stdio.h希望改附我改写程序: #includeint main() 运行结:3,0,0,0
2楼:占同书母癸
c语言和其他语言不同,在其他语言中,一般不区分
赋值操作符与等于
运算符,但是c语言很区分。
=是赋值
==是等于运算
也就是说,
a=b=c,
是一个表达式,运行到这里时,将a的值赋给b、c,运行完后abc的值相等;
a=b==c,是一个复合表达式,先将a的值赋给b,然后与c比较,如果相等则返回0,否则返回一个非零值;
a==(b=c),是一个复合表达式,先执行括号中的内容(即将b的值赋给c),然后比较a、c,如果相等则返回0,否则返回一个非零值;
a==(b==c),是一个复合表达式,先比较b、c的值,如果相等则返回0,否则返回一个非零值,然后比较a与(b==c)的返回值(注意这里不是再比较a与b或c,以前就错在这里过,希望lz注意)。
可以看到c是区分=跟
==的,虽然对新手很麻烦、容易错,但是一旦熟练之后会觉得很灵活,能把赋值语句放到任何你喜欢的地方。
ps:lz的程序风格不好,而且还不习惯引用stdio.h,希望改正。附我改写的程序:
#include
intmain()
运行结果:3,0,0,0
3楼:桓培胜阴酉
c语言中一个等于号表示,将右边的值赋给左边,两个等于号在一起才表示真正的等于,是关系运算符。运算顺序都是从右到左。
上面的个程序运行的结果为3,
0,0,0
4楼:令狐玉枝府培
a=b=c,是赋值语句,从右到左,a=3,b=3a=b==c
是逻辑语句,相当于(a=b)==c,先将b值赋值给a,然后和c比较是否相等,这句返回为0
a==(b=c),同上句.
a==(b==c),先计算括号内的b==c返回为0,然后在a==0,返回0。
=和==是2中不同的表达
5楼:能淑珍类倩
a=b=c
b=3;a=3;
a=b==c
b==c结果为1,再a=1,输出为3;
a==(b=c)
等价于a==3,输出为1;
a==(b==c)
b==c结果为1,a==1结果为0,输出为0;
最后的输出是
3,3,1,0
6楼:示奕琛问雀
=是赋值,==是关系等,=的运算级别低,==的运算级别高,=从右向左结合,==从左向右结合
7楼:匿名用户
c语言中,a=b=c,a=b==c,a==(b=c),a==(b==c)有什么区别:
一个是赋值,一个是逻辑,运算顺序不同,有一个优先级的不同,还有就是结合性不同,一个是向左,一个是向右。
c语言中,a=b=c,a=b==c,a==(b=c),a==(b==c)解答方法:
第一步是最后一个a==(b==c),b是2,c是3,明显不等,所以b==c的值是0,然后a是1,和0又不等,所以整个式子值为0;第二步为倒数第二个,a==(b=c),先将c赋给b,此时b和c都为3,再判断a与b是否相等,a为1,不等,整个式子为0;第三步:a=b==c,经过上一步,此时b和c都为3,所以判断b==c为真,值为1,然后将1赋给a,输出a,就是1;第四步:a=b=c,自右向左,先将c值赋给b,再将b值赋给a,输出a,即为3,结果3,1,0,0。
c语言中 a=b>c 和a==b>c 中有啥子不同
8楼:会飞的小兔子
一、a==b>c和a==(b>c)是一样的表达方式,先判断b>c是否成立,如果成立,用1和a比较,如果a=1,则整个表达式为1。
1、若为真,a为1则该表达式为真,即该符合表达式的值为1。
2、若为假,a不为0则该表达式为假,即该符合表达式的值为0。
二、a=b>c和a=(b>c)是一样的表达方式,先判断b>c是否成立,如果成立,把1赋给a。
1、如果b>c为假,则把0赋值给a。
2、如果b>c为真,则把1赋值给a,
扩展资料c语言中a=b=c,a=b==c,a==(b=c),a==(b==c)的使用
#include
main()
9楼:仁昌居士
c语言中 a=b>c 和a==b>c区别为:执行步骤不同、结果值不同、结果对象不同。
一、执行步骤不同
1、a=b>c:a=b>c的执行步骤为b>c。
2、a==b>c:a==b>c的执行步骤为先b>c,再a==(b>c)。
二、结果值不同
1、a=b>c:如果b比c大,则a的结果值为true;如果b比c小或相等,则a的结果值为false。
2、a==b>c:如果b比c大,且a为true,则a==b>c的结果值为true;如果b比c大,且a为false,则a==b>c的结果值为false;如果b比c小,且a为false,则a==b>c的结果值为true;如果b比c小,且a为true,则a==b>c的结果值为false。
三、结果对象不同
1、a=b>c:a=b>c的结果对象是变量a。
2、a==b>c:a==b>c没有结果对象,只有结果值是。
10楼:匿名用户
1.a=b>c相当于a=(b>c)是一个赋值表达式,把(b>c)的值赋给a,
(1)如果b>c为真,则把1赋值给a,
(2)如果b>c为假,则把0赋值给a。
(3)运行完该表达式,仅a的值改变,b、c的值不变。
2.a==b>c也相当于a==(b>c)是一个符合表达式,先判断(b>c)的真假,
(1)若为真,a为1则该表达式为真,即该符合表达式的值为1。
(2)若为真,a不为1则该表达式为假,即该符合表达式的值为0。
(3)若为假,a为0则该表达式为真,即该符合表达式的值为1。
(4)若为假,a不为0则该表达式为假,即该符合表达式的值为0。
(5)运行完该表达式,a、b、c的值都不发生改变。
11楼:徐章林
第一个,先判断b>c是否成立,如果成立,把1赋给a,否则把0赋给a
第二个,先判断b>c是否成立,如果成立,用1和a比较,如果a=1,则整个表达式为1,否则整个表达式为0。
12楼:匿名用户
a=b>c
a=(b>c)a最后的结果不是0就是1,这可以说是一个赋值表达式a==b>c
a==(b>c),这个是判断表达式
c语言中(a>b)?a:b和(a
13楼:學雅思
一、表达意思不同
1、(a>b)?a:b:如果a大于b,则取a,否则取b。
2、(a
二、逻辑顺序不同
1、(a>b)?a:b:内存逻辑中先执行大于的判断,之后执行下一步。
三、执行顺序不同
1、(a>b)?a:b:在a跟b中取最大值。
14楼:幻翼高达
c语言中,“(a>b)?a:b”和“(a”的区别是当a与b相等时,前者的值是b,后者的值的是a。
条件运算符的表达式为“表达式1?表达式2:表达式3”,先求解表达式1,若其值为真(非0)则将表达式2的值作为整个表达式的取值,否则(表达式1的值为0)将表达式3的值作为整个表达式的取值。
例如:1、max=(a>b)?a:b
就是将a和b二者中较大的一个赋给max。
2、min=(a就是将a和b二者中较小的一个赋给min。
15楼:鱼与咸鱼
1、本质区别
双引号里面的是字符串, 而单引号里面的代表字符。
2、输出区别
str = “a”输出的就是a这个字母;
str = ‘a’输出的测试65
3、底层区别
用单引号引起的一个字符实际上代表一个整数,整数值对应于该字符在编译器采用的字符集中的序列值。
16楼:go学龙
第一个若a>b为真即执行a,为假及执行b
第二个若a
17楼:匿名用户
这个和()没什么关系,我详细的讲一下,你一定要看完啊:)注意理解a++和++a的区别:
a++: 先将a的值代入表达式,在表达式运算完毕后,再将a进行++处理
++a: 先将a进行++处理,再将a的值代入表达式注意对于a++这里有一个“在表达式运算完毕后,再将a进行++处理”,b=(a++); 这是一个赋值表达式,
所以先将a的值代入表达式,必须等到赋值表达式运算完毕后,再将a进行++处理,
也就是说必须等到给b赋值完毕后,才将a进行++处理所以b=3,a=4
18楼:匿名用户
1.a=b>c相当于a=(b>c)是一个赋值表达式,把(b>c)的值赋给a,
(1)如果b>c为真,则把1赋值给a,
(2)如果b>c为假,则把0赋值给a。
(3)运行完该表达式,仅a的值改变,b、c的值不变。
2.a==b>c也相当于a==(b>c)是一个符合表达式,先判断(b>c)的真假,
(1)若为真,a为1则该表达式为真,即该符合表达式的值为1。
(2)若为真,a不为1则该表达式为假,即该符合表达式的值为0。
(3)若为假,a为0则该表达式为真,即该符合表达式的值为1。
(4)若为假,a不为0则该表达式为假,即该符合表达式的值为0。
(5)运行完该表达式,a、b、c的值都不发生改变。
19楼:周肆爻
定界符不同,字符常量用的是单直撇,字符串常量则用双引号长度也不同,字符常量只能有一个字符,也就是说字符常量长度为一,而字符串常量可为0,也可为任意数。即使字符串常量字符数量为一,长度也不是一。
例如,字符串常量"h"(这手机没双引号)
则长度为2,字符就是h \0
20楼:新来的文盲
a比a少一维,我具体给你解释下。
几个元素可以组成数组,而几个一维数组可以组成二维数组,如此一直增加维数。
比如说a[0]=2,a[1]=1,a[2]=3,组成一个一维数组,这就是a.但是,你要注意,a不是直接把这些东西都存着的,a只存首地址。
假设定义了一个二维数组a[3][3].这时候a[0],a[1],a[2]就不再是元素了,而代表的是一个有三个元素的一位数组,而此时的a就是一个二维数组。如果感觉这个有点困难没关系,等学习了指针什么的久很好理解这个了。
再说说你给的程序,你是不是在疑问为什么gets()直接给str1 就可以了?还有那个输出函数,为啥只用给str1就可以?
这得给存储方式有关,字符串就是字符的二维数组,gets()需要输入字符串的首地址,这个还算好理解,因为你应该学过了scanf()了,二者差不多,关键是为什么输出函数直接就写了str1呢?printf()之前你学的一般都是(printf("%d",a[1]));这种类型的。这里为啥要填一个地址参数呢?
这是因为你前面是%s s代表字符串,字符串本身就是二维的,因此,你当然不能只给他一个单独的元素了,那么,你给了首地址他如何知道你这个字符串是啥呢?因为字符串都是顺序存储的,更重要的是字符串在结尾处有个标志“/0”,因此,你只要给力他首地址,他就知道从**开始,从**结束了。
纯手打,望采纳。
设a、b、c R,求证(a+b,设a、b、c∈R,求证√(a+b)+√(b+c)+√(c+a)≥√2(a+b+c)
1楼 陈 因为容易证明 a b a b 2 b c b c 2 c a c a 2 所以三个加起来,得到 a b b c c a 2 a b c 已知a b c r a b c 求证a 2 b 2 c 2 2abcosc 2bccosa 2accosb 2楼 匿名用户 a b c ,是三 角形的内角...
C语言a b和a b的区别,C语言,++a+b和++b+a有什么区别
1楼 匿名用户 自增对象不同 a b 最后自增的是b a b 最后自增的a b c语言, a b和 b a有什么区别 2楼 珑月三 a b是先a加1,然后再加b b a是先b 1,然后再加a 3楼 亱風 a b是a先自加然后加b b a是b自加,,然后加a 结果一样,但是a 和b的值不相同 c语言b...
c语言中int a 1,b 2,c c 1.0 b a输出结果为什么
1楼 匿名用户 结果是c的值是0 因为1 0 b 都会转换位浮点型,结果是0 5 0 5 a 也是会把a转为浮点型,结果是0 5 而c是整形,会对右边运算的结果取整,所结果就是0了。 假如 int a 1 b 2 c 3 表达式a b c的值是1还是0 为什么? 2楼 岔路程序缘 在c语言中,1代表...