c语言最大值和最小值(基本数据类型的大小和极值范围)(1)

C 提供了丰富的内置数据类型,用户也可以自定义数据类型,下面是5种基本数据类型:

基本数据类型还可以使用下面的类型修饰符进行修饰:

int 是基本的整数类型,默认是有符号的(signed ),unsigned 表示无符号,无符号值可以避免误存负数, 同时扩大了正数的表示范围。

short 和 long 是在 int 的基础上进行的扩展,使用 short int 可以节省内存,long int 则可以表示更大的值。

1、数据类型的大小

sizeof() 是一个判断数据类型或者表达式长度的运算符,以字节为单位。

C语言运算符sizeof的用法

c语言最大值和最小值(基本数据类型的大小和极值范围)(2)

2、数据类型的范围

一般数值类型的最小值和最大值与平台相关,C 11中通过模板类 std::numeric_limits,提供了基础算术类型的极值等属性信息,用于取代<climits> 和 <limits.h>,浮点常数定义于 <cfloat> 和 <float.h>。

template <class T> numeric_limits;

The numeric_limits class template provides a standardized way to query various properties of arithmetic types.

代码如下:

#include <iostream> using namespace std; int main() { cout << "sizeof(bool) : " << sizeof(bool) << endl; cout << "sizeof(char) : " << sizeof(char) << endl; cout << "sizeof(int) : " << sizeof(int) << endl; cout << "sizeof(unsigned int) : " << sizeof(unsigned int) << endl; cout << "sizeof(short int) : " << sizeof(short int) << endl; cout << "sizeof(long int) : " << sizeof(long int) << endl; cout << "sizeof(float) : " << sizeof(float) << endl; cout << "sizeof(double) : " << sizeof(double) << endl; cout << "min(bool) : " << numeric_limits<bool>::min() << endl; cout << "min(int) : " << numeric_limits<int>::min() << endl; cout << "min(unsigned int) : " << numeric_limits<unsigned int>::min() << endl; cout << "min(short int) : " << numeric_limits<short int>::min() << endl; cout << "min(long int) : " << numeric_limits<long int>::min() << endl; cout << "min(float) : " << numeric_limits<float>::min() << endl; cout << "min(double) : " << numeric_limits<double>::min() << endl; cout << "max(bool) : " << numeric_limits<bool>::max() << endl; cout << "max(int) : " << numeric_limits<int>::max() << endl; cout << "max(unsigned int) : " << numeric_limits<unsigned int>::max() << endl; cout << "max(short int) : " << numeric_limits<short int>::max() << endl; cout << "max(long int) : " << numeric_limits<long int>::max() << endl; cout << "max(float) : " << numeric_limits<float>::max() << endl; cout << "max(double) : " << numeric_limits<double>::max() << endl; return 0; }

运行结果如下:

c语言最大值和最小值(基本数据类型的大小和极值范围)(3)

C 基本数据类型的大小和极值范围,总结如下表所示:

c语言最大值和最小值(基本数据类型的大小和极值范围)(4)

相关阅读

初识C语言指针

深入理解C语言的指针

C 中指针与引用的区别

C 的友元函数和友元类

C 类的三种继承方式:public/protected/private

,