btcq.net
当前位置:首页 >> FloAt A 1.1有什么问题 >>

FloAt A 1.1有什么问题

float是单精度类型,精度是6位有效数字,取值范围是10的-38次方到10的38次方,float占用4个字节的存储空间 double是双精度类型,精度是15位有效数字,取值范围是10的-308次方到10的308次方,double占用8个字节的存储空间 当你不声明的时候,默认小数都用double来表示,所以如果要用float的话,则应该在其后加上f float类型变量值后加F 表示这个变量是float类型变量 是一种数字精度表示法.

应为 float a = (float)1.2 float型精度不是一位小数,要强制转换

*c的定义不对,b是指针,&b是指针的指针,可以改成**c=&b,或者*c=b 中国物联网校企联盟技术部

*a表示a是一个指针(地址),无论是什么修饰*a,a都是存了一个4个BYTE的地址,区别是,你用了float修饰,表示这个地址指向的是float变量.&a,表示取a变量的地址,例如int a=1;现在&a表示取a这个变量地址.*p;表示取地址(指针)p指向的地址保存的值,例如float a=10; float *b=&a;//让b指向a变量的地址 *b=20;//改变指向的地址上的值*p=a和float *p不同前者里*是运算符,表示取p指向的地址的值,后者只是表明这是一个指针

1/2结果为0. 1和2为整型 结果也去整为0. 但是1.0/2为0.5 因为1.0是浮点型 再看看别人怎么说的.

1、经过程序验证2、答案都是1.0

分号写成了中文符号,应该用英文分号;中文分号;英文分号;

float a = 1;这里的1是整形,当赋值给一个float时,存在一个隐式转换,不损失精度.float a = 1f;1f就是float类型的.如果你这样定义 float f = 1.0; 肯定会出错. 因为1.0默认是double类型的.double范围比float大.为了不损失精度,不会自动转换.这是必须这样写 float f = 1.0f;

数组的名称是它的地址!而定义的时候系统就分配了,所以地址就相当于一个常量,而常量的值是不能改变的.

数组的最后一维的长度是不能省略的,前面的倒是可以省略,但是必须全部初始化 改成这样: float a[][2]={1,2,3,4,5,6}; 等价于 float a[3][2]={1,2,3,4,5,6};

网站首页 | 网站地图
All rights reserved Powered by www.btcq.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com