基本数据类型
基本数据类型分两大类:
整型
浮点型
整型包括char,short,int,long,long long
除此之外,整型还有无符号类型unsigned ...
浮点型包括float,double,long double
规则:
short至少16位,int至少和short一样长;
long至少32位,至少和int一样长;
long long至少64位,至少和long一样长。
float至少4个字节;
double至少6个字节,并且不少于float;
long double至少和double一样长。
数据范围
不同的系统环境,数据范围有所不同;32位/64位操作系统,数据范围也有所不同。
可以通过代码来确定不同的范围:
c语言定义了一系列的宏
#include <stdio.h>#include <limits.h>int main(){ printf("max integer: %d\n", INT_MAX); printf("min integer: %d\n", INT_MIN); return 0; }
C++ 数值极限
#include <iostream>#include <limits>int main(){ std::cout << numeric_limits<int>::max() << endl; std::cout << numeric_limits<int>::min() << endl; return 0; }
数据类型应用
介绍个亲身遇到的数据溢出的问题。
数据压缩后还原导致溢出
int d = 0;long value = d * 1000 + 10;
上面一段代码就有发生数据溢出的可能。当变量d足够大时,再乘以1000就会溢出。结果可想而知,是一个相对小的数值。
//可以这样改写,就不会出现问题long value = (long)d * 1000 + 10;
C/C++基本数据类型,每一种都有范围。在选择数据类型要注意合适的范围,否则会造成数据溢出,产生难以发现的bug。
點(diǎn)擊查看更多內(nèi)容
為 TA 點(diǎn)贊
評(píng)論
評(píng)論
共同學(xué)習(xí),寫(xiě)下你的評(píng)論
評(píng)論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶(hù)
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得
100積分直接送
付費(fèi)專(zhuān)欄免費(fèi)學(xué)
大額優(yōu)惠券免費(fèi)領(lǐng)