C语言 以下A和B 有何区别?
作者&投稿:牧魏 (若有异议请与网页底部的电邮联系)
如果a,b都是整数。a/b是取商,a%b是取余数。
如果a,b为浮点float,double。a/b是计算结果。
C语言中,“(a>b)?a:b”和“(a<b)?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<b)?a:b
就是将a和b二者中较小的一个赋给min。
扩展资料:
条件运算符使用上的结合性:
条件运算符具有右结合性,当一个表达式中出现多个条件运算符时,应该将位于最右边的问号与离它最近的冒号配对,并按这一原则正确区分各条件运算符的运算对象。例如:
w<x ? x+w : x<y ? x : y
与 w<x ? x+w : ( x<y ? x : y) 等价
与 (w<x ? x+w : x<y) ? x : y 不等价
参考资料来源:百度百科-条件运算符
在A中:程序的意思是,如果a==1成立则执行case 1;然后a++.再返回switch对a是否等于1进行判断。当a不等于1,这个switch就结束;
在B中:如果a==1成立,则执行case 1 : a=b;break;然后退出switch.否则a++.直到a==1成立才退出switch.
总结:
A中的结束条件是a不等于1;
B中的结束条件是a等于1;
A:当a等于1的时候,执行a++,a不等于1的时候,执行a=b;
B:当a等于1的时候,执行a=b,a不等于1的时候,执行a++
区别很大
switch(a==1)
判断a是否等于1
a如果等于1,a==1这个表达式的值为1,不等于,a==1这个表达式的值为0
1. 基本数据类型:基本数据类型最主要的特点是,其值不可以再分解为其它类型。也就是说,基本数据类型是自我说明的。
2. 构造数据类型:构造数据类型是根据已定义的一个或多个数据类型用构造的方法来定义的。也就是说,一个构造类型的值可以分解成若干个“成员”或“元素”。每个“成员”都是一个基本数据类型或又是一个构造类型。在C语言中,构造类型有以下几种:
•数组类型
•结构体类型
•共用体(联合)类型
3. 指针类型:指针是一种特殊的,同时又是具有重要作用的数据类型。其值用来表示某个变量在内存储器中的地址。虽然指针变量的取值类似于整型量,但这是两个类型完全不同的量,因此不能混为一谈。
4.空类型:在调用函数值时,通常应向调用者返回一个函数值。这个返回的函数值是具有一定的数据类型的,应在函数定义及函数说明中给以说明,例如在例题中给出的max函数定义中,函数头为:int max(int a,int b);其中“int ”类型说明符即表示该函数的返回值为整型量。又如在例题中,使用了库函数sin,由于系统规定其函数返回值为双精度浮点型,因此在赋值语句s=sin (x);中,s 也必须是双精度浮点型,以便与sin函数的返回值一致。所以在说明部分,把s说明为双精度浮点型。但是,也有一类函数,调用后并不需要向调用者返回函数值,这种函数可以定义为“空类型”。其类型说明符为void。
switch(a==1)
这个a==1其实是有返回值的,如果a==1成立就返回true也就是1,如果a!=1返回false即0
A if(a==1) a++;
else a=b;
B if(a==1)a=b;
else a++;
这就是区别
A:当a等于1的时候,执行a++,a不等于1的时候,执行a=b;
B:当a等于1的时候,执行a=b,a不等于1的时候,执行a++
紫封木香: 有区别 a!=b表示a与b不相等;后面可能提醒语法错误.
大冶市19293347873: C语言第十题A和B有什么区别 - ?
紫封木香: test[1].name是一个指针 test[1].name+2表示指针位置后移2位,指向Y test[1].name[2]是一个字符变量,test[1].name[2]='Y'%s输出要求接受一个指针变量,选A
大冶市19293347873: C语言中,a=b=c,a=b==c,a==(b=c),a==(b==c)有什么区别 - ?
紫封木香: 首先谢谢楼主,这个问题真好!我刚才的回答错了,现在删了重答,不过执行的结果还是3,1,0,0 这个我实际操作过了.首先=和==的意思楼上各位已经说的很清楚了,一个是赋值,一个是判断,==的优先级高于=,==两边的值若相等,则判断为...
大冶市19293347873: c语言中的char *a,*b; strcpy(a,b);与a=b;有什么区别? - ?
紫封木香: char *a,*b; //说明定义的是两个char型指针变量 strcpy(a,b); //此处用法是错误的,strcpy是字符串拷贝,a,b是指针a,b的地址,不是字符型的 char a,b; //说明定义的是两个char型变量 strcpy(a,b); //此处将b的值赋值给a
大冶市19293347873: C语言中,a==b与b==a有什么区别么? - ?
紫封木香: 没区别,==是恒等于,不存在赋值问题,单纯比较,怎么写都行,但是=号就不一样了,是右边赋值给左边
大冶市19293347873: c语言中a<= b 与 a<b||a==b有什么区别,详见下文 - ?
紫封木香: 第一个判断要求小时和分钟这两个数都小于记录值 第二个判断是这个时间小于记录值 比如记录值是 13: 28分 对于 12: 59分来说, 第一个不成立, 第二个成立
大冶市19293347873: C语言中和“”有什么区别 - ?
紫封木香: 不太明白你的意思,什么叫和“”有什么区别呢? 双引号在C语言中有用广泛. 比如char a[10]={'a','b'}为字符 char a[10]={"ab"}为字符串,这也是单引号和双引号最大的区别. 比如print("hello,world\n"); printf("a=a+b"); 双引号括上部分不再是是表达式
大冶市19293347873: 单片机在使用c语言编程时,寄存器ACC和a,寄存器B和b,有什么区别? - ?
紫封木香: ACC B的访问就是直接对寄存器的操作, a ,b 看你怎么定义了,你刚学单片机C语言吧!!!
大冶市19293347873: C语言中=号和==号有什么区别? - ?
紫封木香: 正好给你说反了.=号是赋值 ==是比较.a=b是把b的值赋给a,b本身值不变. a==b是判断a的值是否等于b比如说 int a=10,b=5; a=b; if(a==b) printf("%d,%d"a,b);结果就是5,5刚才我也说错了.嘿嘿……
大冶市19293347873: 在C语言中,计算a和b所指的字符串的长度之差.与比较a和b所指字符串的大小,这两句话有什么区别 - ?
紫封木香: 计算a和b所指的字符串的长度之差:指的是a所指的字符串和b所指的字符串之间长度的差的大小....比如:*a="abc";长度是3*b="abcd";长度是4 差就是4-3=1;-------------------------------------------------- 与比较a和b所指字符串的大小:指的是对a b所指的字符串的内容比较大小...例如:*a="abecd";*b="abcde"; 则a指的字符串要比b所指的字符串要小.....--------因为比到两个字符串的第三个字母的时候e<c[在ASC码里是这样的]...所以a字符串比b字符串小