字面值

在C语言里,一切表达式都有值;字面值,形如“21”,“88.3F”等,是字面形式输入到源代码的值。

有值就需要存放值的空间,空间的大小可以通过sizeof()操作符来获取。如printf("%zd", sizeof(21))

值需要占据多少空间,取决于值的类型。变量的类型可以通过声明变量时标识符前的类型修饰符来指定,而字面值的类型则由编译器通过字面值的形式来判断。如“21”是Int类型的字面值,而“21L”则是Long类型的字面值。对于一个浮点数而言,默认的字面值类型是Double类型而不是Float类型,这是为了保证浮点数的精度。

如果赋值语句的右操作数是一个字面值,可能会牵扯到类型转换的问题。比如下面的例子,float num = 21.2;。21.2在计算机内部的二进制系统中不能被精确地表示,这导致编译器默认21.2的类型为Double类型,而把一个Double类型的字面值通过赋值语句赋给一个Float类型的变量,会引起浮点数精度的丢失。因此,编译器通常会对这一类语句提出警告。要避免这个问题,在开始时要将字面值指定为Float类型,float num = 21.2F

[文] Lightyears

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容