<2>C++ Primer基本内置类型

6 篇文章 1 订阅

基本内置类型

1.void类型

void doA()
{
}

空类型,这个类型的函数没有返回值。

2.int型

int doB()
{
    int a=4;
    return a;
}
整型,返回值为整数,创建的变量也为整数。

3.float型

float doC()
{
      float c=0.1;
      return c;
}
浮点型,返回值为浮点数,创建的变量也为浮点数。

4.char型

char  doD()
{
      char d='a';
      return d;
}
字符型,返回值为一个字符,创建的变量也为字符。

5.bool型

char doE()
{
       bool FF=false;
       return FF;
}
布尔型,返回真或假,是一个判断类型。


字符类型的空间

以上5种就是基础的数据类型,出此之外还有几种扩展类型:
类型含义机器字最小存储空间
bool布尔型
-
char字符型
8位标准字符型
wchar_t宽字符型
16位用来存储中文等字符
short短整型半个机器字16位
int整型1个机器字16位标准字符型
long长整型1或2个机器字32位
float单精度浮点型
6位有效数字
double双精度浮点型
10位有效数字标准浮点型,最快的浮点型
long double

10位有效数字

函数sizeof(),计算数据空间的字节数。

#include<iostream>

int main()
{
	std::cout << "bool:\t\t" << sizeof(bool) << std::endl;
	std::cout << "char:\t\t" << sizeof(char) << std::endl;
	std::cout << "wchar_t:\t" << sizeof(wchar_t) << std::endl;
	std::cout << "short:\t\t" << sizeof(short) << std::endl;
	std::cout << "int:\t\t" << sizeof(int) << std::endl;
	std::cout << "long:\t\t" << sizeof(long) << std::endl;
	std::cout << "float:\t\t" << sizeof(float) << std::endl;
	std::cout << "double:\t\t" << sizeof(double) << std::endl;
	std::cout << "long double:\t" << sizeof(long double) << std::endl;
	system("pause");
	return 0;
}

结果:
bool:                1
char:                1
wchar_t:          2
short:               2
int:                    4
long:                 4
float:                 4
double:             8
long double:    8

溢出

unsigned 表示无符号数,也就是都为整数。如unsigned int表示正整数
signed表示有符号数,可省略。如 (signed) int整数
类型空间2进制最大数10最大数2最小数10最小数
unsigned char8位2^8-125500
char8位2^7-1127-2^7-128
unsigned short16位2^16-16553500
short16位2^15-132767-2^15-32768
unsigned int32位2^32-1429496729500
int32位2^31-12147483647-2^31-2147483648

当我们向一个变量赋值时,若数字溢出,则会从变量的最小值从头开始赋值。
#include<iostream>
using namespace std;
int main()
{
	unsigned char a = 255;
	unsigned char b = 256;
	printf("%d  %d\n", a,b);
	system("pause");
	return 0;
}
结果为和255  0。

例题:

习题2.3
如果在某机器上short类型占16位,那么可以赋给short类型的最大数是什么?Unsigned short类型的最大数又是什么?
#include<iostream>
using namespace std;
int main()
{
	unsigned short a1 = 65535, a2 = a1 + 1;
	short b1 = 32767,b2=b1+1;
	cout << a1 << "   " << a2<<endl;
	cout << b1 << "   " << b2<<endl;
	system("pause");
	return 0;
}

结果:
65535   0
32767   -32768

习题2.4
当给16位的unsigned short对象赋值100000时,赋的值是什么?
#include<iostream>
using namespace std;
int main()
{
	unsigned short a = 100000;
	cout << a<<endl;
	system("pause");
	return 0;
}

结果:34464,即为100000%65535(unsigned short的最大数)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值