c语言c a,b和d(a,b)是什么意思

2021-01-26 11:29:27 字数 5621 阅读 8313

1楼:读书人

c是变量 a是常量 所以c=a 可以看成x=1;

d=(a,b)根据逗号符合定义得出d=b;

逗号的定义是总是等于后一个的

2楼:那拉向露蛮立

如果a小于b的话得到b

的值,否则,如果c

小于的话,得到a的值,都不是的话,得到d的值,注意运算符?:是从右向左结合的

c语言程序设计的d=(a>b>c)是什么意思?

3楼:匿名用户

(a>b>c) 中的a>b>c 是从左到右来比copy较bai的。先比较 a与b。如果du a>b, 则a>b的结果zhi为1。

再让1与c 比较,dao得到的结果为最终的结果。同理,如果ab>c)的结果为 0。

a=2, b=1, c=-1, 则(a>b>c)的结果为 1。

从程序设计的角度上来说,不推荐这样的写法。因为这样的写法和逻辑上的理解是有偏差的。从逻辑上理解来说,(a>b>c)应该写成(a>b && b>c ) 。

4楼:路长顺毋桥

与d=(a>b)>c

ab比较返回的结果是0或1

再跟c比大小

继续返回0或1

最后d的结果就是0或1中的一个

5楼:

(a>b>c) 的 表达方式 在bai c语言 中是错误的。duzhi但编译器 不显dao示 出错信息。

正确的写法 是 (a>b && b>c )真=1,假=0,(a>b && b>c ) 条件成立得专真,属就是得1,d=1; 否则 d=0;

6楼:新手学

此类d的值为布尔型。若括号内的表达式为真则d的值为true,反之为false

7楼:鬼手刀客

若a>b 则为1 --再用1跟c比较 若1>c 则d=1 否则d=0

否则为0-----再用0跟c比较 若0>c 则d=1 否则d=0

8楼:匿名用户

如果a>b>c成立d=1不成立d=0

c语言中(a>b)?a:b和(a

9楼:學雅思

一、表达意思不同

1、(a>b)?a:b:如果a大于b,则取a,否则取b。

2、(a

二、逻辑顺序不同

1、(a>b)?a:b:内存逻辑中先执行大于的判断,之后执行下一步。

三、执行顺序不同

1、(a>b)?a:b:在a跟b中取最大值。

10楼:幻翼高达

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。

11楼:鱼与咸鱼

1、本质区别

双引号里面的是字符串, 而单引号里面的代表字符。

2、输出区别

str = “a”输出的就是a这个字母;

str = ‘a’输出的测试65

3、底层区别

用单引号引起的一个字符实际上代表一个整数,整数值对应于该字符在编译器采用的字符集中的序列值。

12楼:go学龙

第一个若a>b为真即执行a,为假及执行b

第二个若a

13楼:匿名用户

这个和()没什么关系,我详细的讲一下,你一定要看完啊:)注意理解a++和++a的区别:

a++: 先将a的值代入表达式,在表达式运算完毕后,再将a进行++处理

++a: 先将a进行++处理,再将a的值代入表达式注意对于a++这里有一个“在表达式运算完毕后,再将a进行++处理”,b=(a++); 这是一个赋值表达式,

所以先将a的值代入表达式,必须等到赋值表达式运算完毕后,再将a进行++处理,

也就是说必须等到给b赋值完毕后,才将a进行++处理所以b=3,a=4

14楼:匿名用户

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的值都不发生改变。

15楼:周肆爻

定界符不同,字符常量用的是单直撇,字符串常量则用双引号长度也不同,字符常量只能有一个字符,也就是说字符常量长度为一,而字符串常量可为0,也可为任意数。即使字符串常量字符数量为一,长度也不是一。

例如,字符串常量"h"(这手机没双引号)

则长度为2,字符就是h \0

16楼:新来的文盲

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”,因此,你只要给力他首地址,他就知道从**开始,从**结束了。

纯手打,望采纳。

17楼:

&a取址 *p取值这没有什么可说的。

int *p; int a;

a的地址1000h,即&a == 1000h. p是指针,它本身也有存放它的地址,设1200h,

即&p == 1200h(win32下,指针本身长度32位即4字节,可通过sizeof(p)得到). 这样就是用到两块内存了。

p = &a; 即p == 1000h. 这是一个地址值,本质是值,即可以加减等操作的。但是加减后的p, *p可能就无法访问了,因为它已经不指向a了,比如p == 1004h了,如果这是在某一函数里操作的,而1004h地址并不本程序的地址空间里,取*p时那就非法访问,要崩溃的;但如果1004h地址正好是这函数里另外一个int b;变量的地址,那*p的值就是b了。

*p表示取p指向地址的值,也就是1000h上的值; a = 1; 说明1000h上的值为1,所以*p == 1;a, 它本身只是一个符号而已,这个符号代表了地址1000h起的int型长(4字节)的一个内存块, a=1,就是内存块放一个值1, 如果有汇编的思想,能更形象点:[1000h] = 1,根本不需要a,b,c...之类的字符来表示,直接对内存地址进行存取。

18楼:星呈幻

a和p是变量,&a和*p是表达式,1和0x1000是常量a和*p表示的都是整形左值,p和&a表示的都是指针型左值,1和0x1000表示整形和指针型右值。(左右值的概念不清的话,google一下)

在内存中,a和p有存储空间空间,a存放着1,p存放着0x1000,*p和&a没有空间,他们的运算结果是在寄存器中存放的,1和0x1000也有空间,在程序的常量段存放。

*p按照stanley lippman的著作《c++ primer》中的描述,p是指针变量,*是解引用操作符,*p是一个表达式,含义是“对指针变量p进行解引用操作”,这与表达式&a的含义“取整形变量a的地址”是正好是相反的操作。

19楼:匿名用户

首先我们明确a为一个变量 假设定义是 int a;

再明确p是一个指针,假设定义为 int* p;

当我们定义了一个a是系统会分派一个内存给你用来存放他的数值,如 执行了a=10;后 这个内存就存放了一个10的数字,当我们要用到它表示的10时,直接用a替代就可以了。

现在我们再用 p=&a "&"叫取地址符,他是一个运算符。 "&a"就表示指向a有就是上面的那个存着10的内存的地址。如果我们用到a的时候,很明显,我们不能直接用p了,因为他是一个地址而不是我们需要的10这个数,那怎么办呢?

我们这里就可用"*"这个符号,他表示取这个指针所指内存上的数据,即 *p就表示a了用法什么的都一样。

20楼:徐章林

第一个,先判断b>c是否成立,如果成立,把1赋给a,否则把0赋给a

第二个,先判断b>c是否成立,如果成立,用1和a比较,如果a=1,则整个表达式为1,否则整个表达式为0。

21楼:孔明灯

如果a,b都是整数。a/b是取商,a%b是取余数。

如果a,b为浮点float,double。a/b是计算结果。

22楼:自然而然

基本没区别,都是并列的关系。

但是“a或者b”中,a似乎有些优先的感觉,而“或者a或者b”完全是平等的并列关系。

23楼:匿名用户

在 c 语言中,

1.单引号是字符的意思:‘a’,a就是一个字符;

2.双引号就是 字符串的意思:”abd“就是一个字符串。

24楼:菊隐逸者也

a的话就是一个变量,你可以给它赋值,比如,int a=30;double a=60.78,char a=’c‘等等。

而'a'是字符,他实际表示的是a的ascii码,也就是97。

25楼:匿名用户

a=b>c

a=(b>c)a最后的结果不是0就是1,这可以说是一个赋值表达式a==b>c

a==(b>c),这个是判断表达式

26楼:康瑜小簧

b指针的话,b=a肯定不对。要么*b=a,要么b=&a,这两种语法都正确,但是意义不同。前者将a的值赋值给指针b所在的地址,两个值相互不影响。

后者将a的地址赋值给指针b,a和b指向同一个内存地址,该地址的值如果有变化,a和*b同时会变化。

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语言中“a b”是什么意思,c语言中,a^b是什么意思?

1楼 匿名用户 a 异或 b 按位异或 比如 a 为 5 0101 b 为 7 0111 0010 对应位相同为0, 不同为1 希望对你有帮助。谢谢 c语言中,a b是什么意思? 2楼 匿名用户 按位异或, 例如 include int main 输出结果是8 1010 10 0010 2 1000...

求解a+b 8,c+d 6,a+c 13,b+d 11,求a

1楼 匿名用户 由 c d 6,a c 13 得 a c c d 13 6 简化后 a d 7 由 a d 7,a b 8 得 a b a d 8 7 简化后 b d 1 而 上面又有 b d 11,与b d 1不符,此题无解。 2楼 匿名用户 前两个等式相加a b c d 14 后两个等式相加a ...