C语言中(a>b)?a:b和(a<b)?b:a有什么区别

如题所述

第1个回答  2014-04-17
++a a先加1,所以此时的a=9,所以输出是9,a--是a先传参,再减1,.所以输出是9。要是你在后面输出一次a,那就是输出8了。这是一个是先自加减,还是后加减的问题
第2个回答  2013-03-14
优先级 () > ++ > *
*a++ 先执行++ 再执行 * 即指针先移动一个位置,在对移动后指针所指位置解引用取值。
(*a)++ 先执行*a 再执行++ 即先对指针所指位置解引用取值,再对这个值自增加1.
第3个回答  2015-04-02
在 C 语言中,
1.单引号是字符的意思:‘A’,A就是一个字符;
2.双引号就是 字符串的意思:”abd“就是一个字符串。
第4个回答  2010-12-14
&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...之类的字符来表示,直接对内存地址进行存取。
第5个回答  2012-03-08
如果a,b都是整数。a/b是取商,a%b是取余数。
如果a,b为浮点float,double。a/b是计算结果。