2.5:指出下述字面值的数据类型并说明每一组内几种字面值得区别:

a)'a',L'a' , "a",L"a"

  'a':字符型字面值,类型为char;

  L'a':宽字符型字面值,类型为wchar_t;

  "a":字符串字面值;

  L"a":宽字符串字面值;

b)10,,10u,10L,10uL,012,0xC

  10:整型字面值;

  10u:无符号整型字面值,类型为unsigned;

  10L:长整型字面值,类型为long;

  10uL:无符号长整型字面值,类型为unisgned long;

  012:八进制字面值;

  0xC:十六进制字面值;

c)3.14,3.14f,3.14L

  3.14:浮点型字面值;

  3.14f:单精度浮点型字面值,类型为float;

  3.14L:扩展精度浮点型字面值,类型为long double;

d)10,10u,10.,10e-2

  10:整型字面值;

  10u:无符号整型字面值,类型为unsigned;

  10.:浮点型字面值,类型为double;

  10e-2:浮点型字面值,类型double,表示为0.100000000000000;

练习2.6:下面两组定义是否有区别,如果有,请叙述之:

  int month=9,day=7;

  int month=09,day=07;

1)定义变量的形式是以十进制格式的数赋值给变量。

2)定义变量的形式是以八进制格式的数赋值给变量,但是,9超出了八进制的范围,所以编译时会出错。

练习2.7:下述字面值表示何种含义?它们各自的数据类型是什么?

a)"Who goes with F\145rgus?\012"------------>"Who goes with Fergus?\n"    字面值是字符串型,\145:八进制数,转换成十进制数,就是e;\012:换行。

b)3.14e1L---------------------------->3.14xe1=31.400000000000000,类型为long double;

c)1024f------------------------------->1024.0000000,类型为float,在某些编译器环境下会出错,改成1024.f即可。

d)3.14L------------------------------->3.140000000000000,类型为long double

 posted on 2018-07-19 17:05  linlh  阅读(177)  评论(0编辑  收藏  举报