共回答了23个问题采纳率:100%
0)w=a=b w的类型和a b不同,类型不同占用的存储空间和存放的寄存器也不一样,如果要赋值需重新对类型进行注释:w=(int)a=(int)b
0)a=a++=5连环赋值是c和C++特有用法,顺序是从右到左依次赋值,但是,赋值的左边对象必须是一个左值,左值必须是占用固定存储空间的,a++就不是左值,他是一个运算式:a=a+1;
1)D、if(b==0) m=1;n=2;这个是两个语句,因为他有两个;符号
2)以下函数值的类型是 int ,c语言规定,函数类型不写的都是int,例如char fun(float x),函数类型就是char,fun(float x)和int fun(float x)是等价的.
3)暂时没找到错误
4)4.0是一个double类型,和常数混合运算后的值还是double类型.为什么知道4.0是double不是float,因为库函数规定了sqrt()中的形参必须是double.
5)最后一题在使用中的确是允许的,但是会出非常对的漏洞,例如puts的输出函数式见到‘0’就结束的,如果字符数组存满了数据,puts遇不到结束符‘0’就会一直输出,就会出现一堆乱码
1年前
追问
4
w=a=b; ϵͳѵԶǿת?
еģֵԭ˵ͨߴһĴݵһĴdouble͵ļĴintDzһġ
main() { int a; double c=1.0; a=c; printf("%d",a);} ǿԵ?
Լ²ԺijоģʵǾȵĶʧ3.245תintͱ3ˡdoubleintתãҪ͵תunsignedintתء
Ҫֵ¶ͽעͣw=inta=intb ע ϵͳǿƵתʲôأ
ҾбҪϸ˵¡Ҹ㣺 #includevoid main() { unsigned x=-1; if (x<0) printf ("xС-1"); else printf ("xС-1"); } £ִеelseĽΪʲôΪxֵڼĴʾĸ-1ǰ if (x<0) Ϊ if ((int)x<0)ˣΪʲôΪһʵǰ-1ֵдһзŵļĴСٿij main() { int a; double c=1.0; a=c; printf("%d",a);} 㿴û%dģ͵ͬ (int)aIJ˵ԣȰaֵintͼĴ˵ͳԶˣ鿴ԭͻ鼮ڶϢתƵݡ