学点 C 语言(16): 数据类型 - 关于常量的前缀、后缀
2008-11-27 12:18
435 查看
曾经对 float num = 3.14f; 这样的赋值非常疑惑, 其实现在也不明白. 既然说明了是 float 类型, 又何必在 3.14 后面挂个 f 呢? 书上说: int num = 100; 一个整数常量将默认为 int 类型(除非常数有后缀或超出了 int 的范围) double num = 3.14; 一个浮点数常量将默认为 double 类型 并要求: long num = 100L; long long num = 100LL; unsigned long = 100UL; unsigned long long num = 100ULL; float num = 3.14f; 这些后缀是大小写无关的、(U 和 L是)无顺序的; 我反复测试, 看不出没有区别. 我觉得这些东西用于 #define 还说得过去, 用于指定类型的变量有必要吗? 我猜唯一的必要性或许是让编译器少转换一次. 不过知道还是有好处, 以免看不懂别人的代码. 总之, 前人应该自有道理, 希望谁知道能告诉我. 另外, 如果是十六进制或八进制常数, 将从 int、unsigned、long、unsigned long 中自动选择最小的类型.
其他情况:
#include <stdio.h> #include <stddef.h> int main(void) { char c = 'a'; char cs[] = "abc"; wchar_t wc = L'A'; /* 这个 L 也可以省略 */ wchar_t ws[] = L"ABC"; int n1 = 65535; int n2 = 0xFFFF; /* 十六进制 */ int n3 = 0Xffff; /* 大小写都行 */ int n4 = 0177777; /* 八进制 */ printf("%c, %s, %c, %S\n", c, cs, wc, ws); printf("%d, %d, %d, %d\n", n1, n2, n3, n4); getchar(); return 0; }
相关文章推荐
- Java语言基础(关键字、标识符、注释、常量与变量、进制、数据类型、类型转换、代码示例)
- C/C++开发语言系列之16---C++不同类型数据间的转换
- 关于C语言数据类型的十个问题
- 黑马程序员——C语言基础知识整理——数据类型、常量与变量
- C语言基础学习基本数据类型-变量和常量
- 磨刀不误砍材工 - Java的基础语言要素(从变量/常量切入,看8种基本数据类型)
- 关于c语言中的uint8_t / uint16_t / uint32_t /uint64_t 是什么数据类型
- 黑马程序员——C语言基础(二)数据类型、常量以及变量
- Java语言基础{Java_se(02)}-字面量和常量-变量的基本定义和使用-Java表达式-数据类型和分类-基本数据类型的转换-算数运算符-赋值运算符-比较运算符-三元运算符-逻辑运算符
- C语言基础:进制转换,变量,常量,表达式,基本数据类型,输出函数,输入函数,运算符. 分类: iOS学习 c语言基础 2015-06-10 21:39 25人阅读 评论(0) 收藏
- C语言基础之输入输出、常量定义、随机数、动态链接库的注入、数据类型介绍、goto语句的使用
- 不可或缺 Windows Native (2) - C 语言: 常量,变量,基本数据类型
- 关于uint8_t,uint16_t,uint32_t数据类型
- [Java入门笔记] Java语言基础(二):常量、变量与数据类型
- 一个关于c/c++语言内存数据类型的实验
- 语言基础(项目结构、数据类型、变量、常量)
- C语言基础:进制转换,变量,常量,表达式,基本数据类型,输出函数,输入函数,运算符.
- 黑马程序员——Java语言基础——关键字、表示符、常量、变量及数据的类型、运算符
- [Java入门笔记] Java语言基础(二):常量、变量与数据类型
- DirectX 3D_基础之HLSL(高级着色语言) HLSL着色器程序的编制 HSLS变量 HLSL入口函数 HLSL程序编译 变量常量类型 设置方法 前缀 关键字 类型 语句 类型转换