c语言中a 等于多少
来源:学生作业帮助网 编辑:作业帮 时间:2024/05/13 01:12:28
int a=5; printf("!(a--)=%d\n",!(a--)); //---result:0int&n
~是取反码操作符,意思是将操作数按二进制位取反,即0变成1、1变成0假定操作数a二进制表示为1001110,则~a为0110001a~b没有意义
1/3=01%3=1不懂欢迎追问再问:Ϊʲô������ô������再答:C�����涨����/����=��������1/3=(int)(0.33333)=01%3����1��3������
先做t*a运算,再将结果赋值给t,即t=t*a其余加减除类似
2%2=0%是模除,取余数
强制转换运算优先,再做除法,所以3.5(float)7/2-->((float)7)/2-->7.0/2-->3.5如果是(float)(7/2)--〉(float)3-->3.00000
1a
根据优先级要从右到左,++操作符有限最高先算,当他的结果是最后加上的所有就是先执行6*6继续是6-=36;-30+=-30;-60++结果-59
表示出错了哈哈
跟据优先级和结合性来考虑.()的优先级最高,既先算括号里面的,等于一.然后是%[求余符号],这里等于零.最后0+1=1,所以答案是1
答:x=3;a=3执行过程是:a=3;x=a;(即x=3)(赋值运算“=”号,是从右到左执行的)被忽略的是6*3(因为这只是一个算术表达式,并没有参与赋值)
4.7%10错误表达式,%前后都必须为整数再问:再问:第一和第二怎么算。求指导谢谢了再答:x=5a=2,b=4.7int(b-a)%3*a/4-aint(b-a)=int(2.7)=22%3=22*a
都等于a因为(1)*和&是互逆的运算(2)*和&是单目运算符,运算自右向左,所以&*a就是&(*a)再问:嗯
0表示数字0还有逻辑非(false)~按位取反13=1101~13=0010=2
%是求余运算.a%=4-1——a=a%(4-1)——a=2%3=2
貌似等于a再问:就是等于a,可是书上没推导,没理论,不好理解呀再答:*这个是指针再答:&这个是解引用再问:是的,&不是地址运算符吗?再答:合起来就表示解引用指针。。取指针位置的数值再答:是地址运算符呀
2只保存最后一个字符(这里是2)'2'-'0'=2
a+++++b=(a++)+(++b)=a+b+1a++这个表达式值并没有加1只是a加了1++b这个表达式值加了1b也加了1
#includevoidmain(void){printf("%d\n",6-'0');}结果是-42'0'对应的Ascii码是48,所以6-48=-42.
10+97+1.5-0.5*98=157.5再问:是不是算错了108.5-49=59.5再答:嗯59.5