1楼:匿名用户
如果a不等于b那么输出a-b,否则,输出a+b
c语言中(a>b)?a:b和(a
2楼:學雅思
一、表达意思不同
1、(a>b)?a:b:如果a大于b,则取a,否则取b。
2、(a
二、逻辑顺序不同
1、(a>b)?a:b:内存逻辑中先执行大于的判断,之后执行下一步。
三、执行顺序不同
1、(a>b)?a:b:在a跟b中取最大值。
3楼:幻翼高达
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。
4楼:鱼与咸鱼
1、本质区别
双引号里面的是字符串, 而单引号里面的代表字符。
2、输出区别
str = “a”输出的就是a这个字母;
str = ‘a’输出的测试65
3、底层区别
用单引号引起的一个字符实际上代表一个整数,整数值对应于该字符在编译器采用的字符集中的序列值。
5楼:go学龙
第一个若a>b为真即执行a,为假及执行b
第二个若a
6楼:匿名用户
这个和()没什么关系,我详细的讲一下,你一定要看完啊:)注意理解a++和++a的区别:
a++: 先将a的值代入表达式,在表达式运算完毕后,再将a进行++处理
++a: 先将a进行++处理,再将a的值代入表达式注意对于a++这里有一个“在表达式运算完毕后,再将a进行++处理”,b=(a++); 这是一个赋值表达式,
所以先将a的值代入表达式,必须等到赋值表达式运算完毕后,再将a进行++处理,
也就是说必须等到给b赋值完毕后,才将a进行++处理所以b=3,a=4
7楼:匿名用户
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的值都不发生改变。
8楼:周肆爻
定界符不同,字符常量用的是单直撇,字符串常量则用双引号长度也不同,字符常量只能有一个字符,也就是说字符常量长度为一,而字符串常量可为0,也可为任意数。即使字符串常量字符数量为一,长度也不是一。
例如,字符串常量"h"(这手机没双引号)
则长度为2,字符就是h \0
9楼:新来的文盲
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”,因此,你只要给力他首地址,他就知道从**开始,从**结束了。
纯手打,望采纳。
10楼:
&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...之类的字符来表示,直接对内存地址进行存取。
11楼:星呈幻
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的地址”是正好是相反的操作。
12楼:匿名用户
首先我们明确a为一个变量 假设定义是 int a;
再明确p是一个指针,假设定义为 int* p;
当我们定义了一个a是系统会分派一个内存给你用来存放他的数值,如 执行了a=10;后 这个内存就存放了一个10的数字,当我们要用到它表示的10时,直接用a替代就可以了。
现在我们再用 p=&a "&"叫取地址符,他是一个运算符。 "&a"就表示指向a有就是上面的那个存着10的内存的地址。如果我们用到a的时候,很明显,我们不能直接用p了,因为他是一个地址而不是我们需要的10这个数,那怎么办呢?
我们这里就可用"*"这个符号,他表示取这个指针所指内存上的数据,即 *p就表示a了用法什么的都一样。
13楼:徐章林
第一个,先判断b>c是否成立,如果成立,把1赋给a,否则把0赋给a
第二个,先判断b>c是否成立,如果成立,用1和a比较,如果a=1,则整个表达式为1,否则整个表达式为0。
14楼:孔明灯
如果a,b都是整数。a/b是取商,a%b是取余数。
如果a,b为浮点float,double。a/b是计算结果。
15楼:自然而然
基本没区别,都是并列的关系。
但是“a或者b”中,a似乎有些优先的感觉,而“或者a或者b”完全是平等的并列关系。
16楼:匿名用户
在 c 语言中,
1.单引号是字符的意思:‘a’,a就是一个字符;
2.双引号就是 字符串的意思:”abd“就是一个字符串。
17楼:菊隐逸者也
a的话就是一个变量,你可以给它赋值,比如,int a=30;double a=60.78,char a=’c‘等等。
而'a'是字符,他实际表示的是a的ascii码,也就是97。
18楼:匿名用户
a=b>c
a=(b>c)a最后的结果不是0就是1,这可以说是一个赋值表达式a==b>c
a==(b>c),这个是判断表达式
19楼:康瑜小簧
b指针的话,b=a肯定不对。要么*b=a,要么b=&a,这两种语法都正确,但是意义不同。前者将a的值赋值给指针b所在的地址,两个值相互不影响。
后者将a的地址赋值给指针b,a和b指向同一个内存地址,该地址的值如果有变化,a和*b同时会变化。
20楼:匿名用户
p, &a表示a在内存中的地址,p=&a 表示把a在物理中的地址给变量p,*p表示取出p在内存中的值,
因为a的值在内存中的地址与p相同,所以*p=a。
关于c语言方面的数个人觉的还是谭浩强的比较经典。
21楼:庚琰
引号引起来说明是字符。
不因起来说明是变量名。
printf("%c",a);
printf("%d",'a');
比较两者的区别。
上面是a的变量内容。
而下面是a的ascii码,97.
22楼:匿名用户
a表示的是存储数组a[..]的首地址,而a[..]表示的是这个字符的值。
拿旅店比喻:你住在302房。那么a就表示302这个门牌号,而a[..
]就表示你。假设服务员要叫你吃饭,就得先找到302这个房间,然后再把你请到大厅吃饭。操作系统无论是存储数据还是读取数据,都是先找到数据的首地址!
c语言中a!=b 什么意思呢
23楼:枫玺
a++是a参与运算后,a的值再自增1。
++a 是a自增1后再参与其它运算。
!=表示不等于。
例:对于以下,有int x = 5, y = 6, z;z = ++x + y++;
使用的技巧就是:把原始计算式转化成多个、有先后计算顺序的、小的计算式,然后带入变量的值,进行求解。记住:同一优先级的运算符的计算顺序是从右往左。
z = ++x + y++; 可以转化为:
x = x +1;
z = x + y;
y = y + 1;
带入x = 5, y = 6,可得x = 6; z = 12; y = 7;
扩展资料
a++ 和++a 的主要区别是自增的顺序,++在变量前表示先进行自增运算,即变量的值加1。++在变量后则进行运算后再进行自增运算。
在同一条语句中,被操作的数出现多次是可以通过编译的,但是其在c++ standard等语言标准中被定义为"undefined behavior"(不确定的行为),即不同的编译器或编译器版本所编译得到的机器码可能不尽相同。
不推荐在同一条语句中使被操作的数出现多次,这不仅仅将导致程序的含义难以理解,可读性大幅降低,同时可能导致不同的编译器或编译器版本得到不同的结果。
前置后置区别的举例:
a = i++;
相当于 a = i; i++;
a = ++i;
相当于 i++; a = i;
概率论P(A-B)的含义?P(A+B)的含义?P(A+B
1楼 匿名用户 p a b p a b p a p b p ab p ab p a b p a p b a 概率论中p a b p a p b 和p a b p a p b 成立吗? 2楼 禾鸟 都是成立的,但是需要条件 1 p a b p a p 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...