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

61 篇文章 2 订阅

1 常用数据类型 占用大小

在这里插入图片描述

#include<iostream>                                                     
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字节。

在这里插入图片描述

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

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

在这里插入图片描述
在这里插入图片描述

4 类型转换

C/C++ 数据类型

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

R-G-B

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值