比如看下面的这段短程序:
#include<stdio.h>
void main()
{int i=0;
float j=0;
i=i+1;
j=j+1.0;
}
问题出来了 1,1.0都是什么类型 据说默认1为整型 1.0默认为双精度型 如果想把1为long型需要加L 1.0为浮点型需要加F 是这样的吗
Cè¯è¨ä¸ç常éä¸è¬å为两类æ´å常éåæµ®ç¹æ°å¸¸éã
æ´å常éçé»è®¤æ°æ®ç±»åæ¯intç±»åï¼å³æ符å·æ´åã
æµ®ç¹æ°å¸¸éçé»è®¤ç±»åæ¯doubleç±»åï¼å³é¿æµ®ç¹æ°ç±»åã
注æï¼æ´å常éä¸æä¸ç±»ç¹æ®ç常éï¼å³å符常éï¼æå符常éï¼å¼ç³åºå符串常éãå符常éçé»è®¤ç±»åæ¯charç±»åï¼å³æ符å·å符类åï¼å符串常éçç±»åï¼ä¸è¬ä¸ºconst intç±»åãåæ¶ï¼ä¸åçç¼è¯å¨ï¼ç¥æä¸åï¼ä½ä¸è¬éµå®è¯¥è§åã
æ´å常éçé»è®¤æ°æ®ç±»åæ¯intç±»åï¼å³æ符å·æ´åã
æµ®ç¹æ°å¸¸éçé»è®¤ç±»åæ¯doubleç±»åï¼å³é¿æµ®ç¹æ°ç±»åã
注æï¼æ´å常éä¸æä¸ç±»ç¹æ®ç常éï¼å³å符常éï¼æå符常éï¼å¼ç³åºå符串常éãå符常éçé»è®¤ç±»åæ¯charç±»åï¼å³æ符å·å符类åï¼å符串常éçç±»åï¼ä¸è¬ä¸ºconst intç±»åãåæ¶ï¼ä¸åçç¼è¯å¨ï¼ç¥æä¸åï¼ä½ä¸è¬éµå®è¯¥è§åã
温馨提示:答案为网友推荐,仅供参考
第1个回答 2010-11-18
有时,你也会看到一些老的代码中,在一些常后面加一个大写或小写的 L 字母。如:989L 这是什么意思呢?原来,一个常数如果其范围允许,那么计算机默认将其认为是 int 类型的,那么要让计算机把某个数认为是 long int类型,就可以在其后面加 L 或 l。不过,这在以前的16位机器才有意义了。现在,我们的机器都是32位,long int 和 int 完全一样,都是占用4个字节,所以,我们没有必要这样用了。但是long long 类型定义时就得写3LL,而unsigned long long 为
3ULL
实型常数一般只用10表示。比如 123.45,或 .123。后者是 0.123的简写。不过我个人认为,少写一个0的代价是很容看错。
实型数还可以使用,或曰指数形式,如:123e4、或123E4 都表示 123 * 104,即 1230000。
我们学过的实数有:float,double,long double。在C++中,默认的常数类型是double。比如你写:
1.234;
那么,C++按double类型为这个数分配内存,也就是说为它分配8个字节。如果要改变这一点,可以通过加后缀字母来实现。
加 f 或 F,指定为float类型。
加 l 或 L, 指定为double类型。
以下示例:
12.3f //float类型
12.3 //默认类型(double)
12.3L //long double类型
12.3e400 //long double类型,因为值已不在double类型的取值范围内本回答被提问者和网友采纳
3ULL
实型常数一般只用10表示。比如 123.45,或 .123。后者是 0.123的简写。不过我个人认为,少写一个0的代价是很容看错。
实型数还可以使用,或曰指数形式,如:123e4、或123E4 都表示 123 * 104,即 1230000。
我们学过的实数有:float,double,long double。在C++中,默认的常数类型是double。比如你写:
1.234;
那么,C++按double类型为这个数分配内存,也就是说为它分配8个字节。如果要改变这一点,可以通过加后缀字母来实现。
加 f 或 F,指定为float类型。
加 l 或 L, 指定为double类型。
以下示例:
12.3f //float类型
12.3 //默认类型(double)
12.3L //long double类型
12.3e400 //long double类型,因为值已不在double类型的取值范围内本回答被提问者和网友采纳
第2个回答 2010-11-17
是的,那个F 大小写没什么关系。本回答被网友采纳
第3个回答 2010-11-17
是的