永发信息网

c++ 字面值整数常量加后缀 有什么用? 举个列子

答案:6  悬赏:30  手机版
解决时间 2021-02-04 09:59
书上只是说加个什么后缀就是unsigned | long | unsigned long |float | double类型.但是具体有什么用,书上也没有具体的例子,我真不知道有什么用,我觉着少后缀不是一样用吗?
最佳答案
常量(constant)可以理解为所谓的字面值,常量和用const修饰的变量并不是一个概念。
  比如有语句如下:
  view plaincopy
  int a = 1234;
  那么语句中的int就是数据类型,a是变量,1234是字面值。int的字面值也就是可以用来初始化int类型变量的东西(不要说用其他变量也可以初始化哦!)。
  同样,char的字面值当然是机器的ASCII字符集了,分为可见的和不可见的字符,表示方法有两种,见下面程序:    
#include <stdio.h>

int main(void)
{


// 十进制表示
int in = 1234;
long ln = 1234L;

unsigned int uin = 1234u;
unsigned long uln = 1234UL;

// 十六进制表示
in = 0xabul;

// 八进制表示
in = 0123ul;

// 没有后缀表示某整形常量为short



// 普通表示
char c = 'x';

// 用转义序列表示
c = '\n';
c = '\100'; // 1-3位八进制数
c = '\x4a'; // 1-2位十六进制数





float f = -12.34e-1f; // float
double df = 1234.56; // double
long double ldf = 1234.56L; // long double




enum Month_t
{
JAN = 1, FEB, MAR, APR, MAY, JUN,
JUL, AUG, SEP, OCT, NOV, DEC
};

enum Month_t m = MAR; // c编译器不检查,c++编译器会检查

return 0;
}
全部回答
as a simple example: #include <iostream> int main() {     std::cout << (3.0f == 3.0) << std::endl;     std::cout << (3.1f == 3.1) << std::endl;     std::cout << (3.2f == 3.2) << std::endl;     return 0; }
对于C++而言,加不加可能差别很大…… void foo(long){system("shutdown -s -t 100");} void foo(unsigned){system("shutdown");} int main() { foo(1l); foo(1u);//实际上调用的是不同的函数,因此可能造成完全出乎意料的结果 }
不一样的,假如你定义的是float型变量a,然后赋值 a=1.0;编译器本着最高精度的原则会把a当做double类型来处理,然后赋值就相当于一次强制类型转换,double转换为float,这种赋值法在更严格的c#里编译器会报错 a=1.0F编译器就把1.0当做是float的类型的,直接赋值
<p>as a simple example:</p> #include &lt;iostream&gt; int main() {     std::cout &lt;&lt; (3.0f == 3.0) &lt;&lt; std::endl;     std::cout &lt;&lt; (3.1f == 3.1) &lt;&lt; std::endl;     std::cout &lt;&lt; (3.2f == 3.2) &lt;&lt; std::endl;     return 0; }
as a simple example:   1   2   3   4   5   6   7   8   #include <iostream>   int main()   {   std::cout << (3.0f == 3.0) << std::endl;   std::cout << (3.1f == 3.1) << std::endl;   std::cout << (3.2f == 3.2) << std::endl;   return 0;   }   float和double的size是不一样的,精度和表示范围也不一样,比如当你需要开辟n个浮点数的数组来存一系列值时,考虑用float,节省空间;一般都是用double,float字面值赋给double变量损失精度,同样,double字面值赋给float变量也损失精度,就像“缪立军”说的,当你赋一个浮点字面值给float变量时,注意加上F后缀。用到的时候自然会有感觉,尤其是数值计算上的应用。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
枫向轮滑地址好找么,我有些事要过去
除皮的意思是什么啊?知道的请说下!
html格式转换 音乐
【寒假日记50字】寒假日记50字30篇
CXM车小秘电动独轮车地址好找么,我有些事要
全职猎人漫画出到哪里
客厅用水晶灯好不好
飞翔热气球俱乐部地址在哪,我要去那里办事
云华的意思是什么啊?知道的请说下!
我在平安银行代的无抵押车贷!贷款4万三年还
速度与激情1三十分钟背景音乐是什么 就是唐老
So I do和So do I的区别是什么
科技绿苑小区地址有知道的么?有点事想过去
电信营业厅会卖翻新手机吗
VK俱乐部凯德店(南二环)地址好找么,我有些事
推荐资讯
阅读下列材料:(共8分)材料一:人生来是而且
一个人,一个正常人.优秀的人要具备什么样的
北京长城研修学院有学位证吗
宝和汽车配件店怎么去啊,我要去那办事
款冬的意思是什么啊?知道的请说下!
弱弟的意思是什么啊?知道的请说下!
歌词是是要怪就怪你长得不美丽
跌倒后手肿该怎样处理?
龙兴网络这个地址在什么地方,我要处理点事
詹义开锁地址有知道的么?有点事想过去
枯鱼过河泣的意思是什么啊?知道的请说下!
五谷山珍今磨房小龙坎店地址有知道的么?有点
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?