【数据类型】

前言

基本数据类型是学习数据结构和算法复合类型的基础。要烂熟于心。

一.基本数据类型

实数:正数,0,负数

0x1字符

计算机里只能存储二进制,为了满足字母和文字的需要,诞生了编码规范ASCII编码是最早的一种规范。
编程中如果出现了乱码问题,要从这个问题的本质思考问题。

0 - 2^8-1(1字节):unsigned char
-2^8/2 - 2^8/2-1(1字节):char(ascii字符)
-2^16/2 - 2^16/2-1(2字节):wchar_t(宽字节字符)
-2^16/2 - 2^16/2-1 (2字节):char16_t(utf_16字符)
-2^32/2 - 2^32/2-1 (4字节):char32_t(utf_32字符)

#include <iostream>
#include <locale>

using namespace std;	
int main(int count, char* argv[], char* env[])
{
	setlocale(LC_ALL, "chs");
	wchar_t wChar{ L'我' };
	char16_t uChar{ u'A' };
	char32_t u32Char{ u'A' };
	std::wcout << wChar << std::endl;//A
	std::cout << wChar << std::endl;//cout没有支持wchar_t,只能输出数字
	std::cout << uChar << std::endl;//cout没有支持char16_t,只能输出数字
	std::cout << (char)10;
	std::cout << u32Char << std::endl;//cout没有支持char32_t,只能输出数字
}
0x2.正数

0-2^16-1(2字节):unsigned short
0-2^32-1(4字节):unsigned int
0-2^32-1(4字节)/64-1(8字节):unsigned long
0-2^64-1(8字节):unsigned long long

0x3.负数

-2^8/2 - 2^8/2-1):short
-2^32/2 - 2^32/2-1:int
-2^32 - 2^32-1(4字节)/64-1(8字节):long
-2^64/2 - 2^64/2-1:long long

0x4.小数(分数)

1.float(4)
2.double(8)
3.long double(8)

#include <iostream>
#include <string>

int main(int count, char* argv[], char* env[])
{
	unsigned data = 0x7FD0C347;
	printf("%f\r\n", *(float*)&data);
}

应用场景:3D游戏瞬移漏洞,银行漏洞。(未公开漏洞

0x5.对和错

0 - 255(1字节):bool。(除0之外所有值都是true)

二.命名规则和命名规范
  1. 不能重名
  2. 不能和C/C++语言里的关键字重名;
  3. 必须是字母字母和数字的组合,符号仅_可以使用;
  4. 名字不能用数字开头;
  5. 这个变量名要能够直观表达你这个名字代表的内容
  6. 别太长(建议)
三.赋值和运算
#include <iostream>
#include <string>

int main(int count, char* argv[], char* env[])
{
	int a = 10;
	int s_end = ++a + 5;
	int s_end = 5 + a++;
}
四.变量的生命周期

字母代替数字变化的范围,计算每时每刻都在变化的数量间的关系。

0x1 就近原则:

0x2 变量在括号内{}保持有效

总结

高手不在于你这个招式,在于能够把这种朴实无华的基础(拳脚)打出伤害。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值