C/C++ 数据类型 占用大小 有符号(char int flaoat double )、无符号(uchar uint ulong)、指针型、wchar_t、size_t、ptrdiff_t

文章目录

  • 1 常用数据类型 占用大小
  • 2 int和long 的比较
  • 3 【C++学习第十一讲】C++数据类型
  • 4 类型转换

1 常用数据类型 占用大小

C/C++ 数据类型 占用大小 有符号(char int flaoat double )、无符号(uchar uint ulong)、指针型、wchar_t、size_t、ptrdiff_t_第1张图片

#include                                                     
using namespace std;

int main()
{
	char c;
	bool e;
	int a;
	long b;	
	long long int tt;
	float f;
	double g;

	int* p = &a; 
	char* q = &c;
	float* z = &f;
	double* y = &g;

	wchar_t d;//wchar_t是wide char type,“一种用来记录一个宽字符的数据类型”。
	size_t sizet; //size_t是size type,“一种用来记录大小的数据类型”。
	ptrdiff_t diff;//ptrdiff_t是pointer difference type,“一种用来记录两个指针之间的距离的数据类型”。

	unsigned char cc;
	unsigned int aa;
	unsigned long bb;
	unsigned long long int utt;

	
	cout << "sizeof(char) = " << sizeof(c) << endl;
	cout << "sizeof(bool) = " << sizeof(e) << endl;
	cout << "sizeof(int) = " << sizeof(a) << endl;
	cout << "sizeof(long) = " << sizeof(b) << endl;
	cout << "sizeof(long long) = " << sizeof(tt) << endl;
	cout << "sizeof(float) = " << sizeof(f) << endl;
	cout << "sizeof(double) = " << sizeof(g) << endl;


	cout << endl<<"指针类型都是8字节" << endl;
	cout << "sizeof(int*) = " << sizeof(p) << endl;
	cout << "sizeof(char*) = " << sizeof(q) << endl;
	cout << "sizeof(float*) = " << sizeof(z) << endl;
	cout << "sizeof(double*) = " << sizeof(y) << endl;

	cout << endl << "其他类型" << endl;
	cout << "sizeof(wchar_t) = " << sizeof(d) << endl;
	cout << "sizeof(size_t) = " << sizeof(sizet) << endl;
	cout << "sizeof(ptrdiff_t) = " << sizeof(diff) << endl;


	cout << endl << "无符号类型" << endl;
	cout << "sizeof(uchar) = " << sizeof(cc) << endl;
	cout << "sizeof(uint) = " << sizeof(aa) << endl;
	cout << "sizeof(ulong) = " << sizeof(bb) << endl;
	cout << "sizeof(unsigned long long) = " << sizeof(utt) << endl;




	int i;//定义一个int类型的变量i
	size_t size = sizeof(i);//用sizeof操作得到变量i的类型的大小
	//这是一个size_t类型的值
	//可以用来对一个size_t类型的变量做初始化
	i = (int)size;//size_t类型的值可以转化为int类型的值
	char ccc = 'a';//c保存了字符a,占一个字节
	wchar_t wc = L'a';//wc保存了宽字符a,占两个字节
	//注意'a'表示字符a,L'a'表示宽字符a
	int arr[] = { 1,2,3,4,5 };//定义一个数组
	int* p1 = &arr[0];//取得数组中元素的地址,赋值给指针
	int* p2 = &arr[3];
	ptrdiff_t dif = p2 - p1;//指针的减法可以计算两个指针之间相隔的元素个数
	//所得结果是一个ptrdiff_t类型
	i = (int)dif;//ptrdiff_t类型的值可以转化为int类型的值


	cout << endl;
	cout << "ptrdiff_t dif = p2 - p1; " << dif <<";   sizeof(dif) = " <<sizeof(dif) << endl;
}

2 int和long 的比较

在早期的16位系统环境下,int是用2字节,long用4字节。

在后来的32位系统环境下,int和long一样,都用4字节。

在64位系统环境下,根据编译器的版本不同,int和long用的存储也不同。
32位的编译器,int和long一样,都用4字节。64位编译器,int是用4字节,long用8字节。

C/C++ 数据类型 占用大小 有符号(char int flaoat double )、无符号(uchar uint ulong)、指针型、wchar_t、size_t、ptrdiff_t_第2张图片

3 【C++学习第十一讲】C++数据类型

【C++学习第十一讲】C++数据类型

C/C++ 数据类型 占用大小 有符号(char int flaoat double )、无符号(uchar uint ulong)、指针型、wchar_t、size_t、ptrdiff_t_第3张图片
C/C++ 数据类型 占用大小 有符号(char int flaoat double )、无符号(uchar uint ulong)、指针型、wchar_t、size_t、ptrdiff_t_第4张图片

4 类型转换

C/C++ 数据类型

C/C++ 数据类型 占用大小 有符号(char int flaoat double )、无符号(uchar uint ulong)、指针型、wchar_t、size_t、ptrdiff_t_第5张图片

你可能感兴趣的:(C++,算法,常用数据类型占用大小,有符号,无符号,指针型,wchar_t,size_t,ptrdiff_t)