c++之说_3|数据类型

本文通过九宫格游戏的视角,介绍了C++中的基本数据类型(如char,int,float等)、变量、ASCII编码、指针以及整数的正负表示,重点讲解了数据类型的概念和main函数的作用。
摘要由CSDN通过智能技术生成

谈起c++那就一定得谈数据类型

char , short , int , long , float , double , 

unsigned int , unsigned float , unsigned double , unsigned long,

还有指针类型 

char* , int* , float* ...

当然还有程序入口  int main 函数

一天,你逐渐发现九宫格游戏,只是单纯的摆放小棒 也太无趣了 

你在思索能不能让这些小棒表示我们人类的文字、数字...

于是新的规则出现了

你引入了一个新的东西  叫变量

变量 就是九宫格小格子标号的另一个名字

(变量 就是内存地址的另一个名字)

是的你放弃了直接指定存放的小格子标号 

存放的位置你让白虎自己决定了

你为了让小棒表示人类文字又颁布了ASCII 编码

随后

char 这个定义变量的关键字出现了

你在纸条上写  char a;

就代表 a这个变量 所占格子数是一个小格子。

就这样  你可以使用小棒让白虎表示人类文字了

白虎并不知晓人类文字  它只知道根据 指令和小格子里摆放的小棒去对照你所写的ASCII 编码

然后对应编码表上面的人类文字

随着游戏的进行  你发现 一个小格子能表示的东西太少了,而且究竟是表示数字还是文字  是混淆的

你开始想能不能让变量使用多个格子表示一个东西呢

就这样新的规则出现了

数据类型的概念出现了

数据类型  将不同或相同的格子数中的小棒 代表不同的东西  如 文字、数字   

0100 0001 b 对照ASCII 编码 这个表示 A

但是如果引入数据类型  让它表示整数  那就代表 65

这样你就可以表示很多东西了 不会混淆

于是数据类型关键字出现了

char    字符型  一个字节数(一个格子数)

short   短整数型  两个字节数(两个格子数)

int        整数型      四个字节数(四个格子数)

long     长整数型   四个字节数(四个格子数)

float     浮点数型   四个字节数(四个格子数)浮点数就是小数

double 双精度浮点数型  八个字节数(八个格子数)

指针型

char *  字符指针型  至少是四个字节数(至少四个格子数)具体字节数根据操作系统有关

int *     整数指针型  至少是四个字节数(至少四个格子数)具体字节数根据操作系统有关

等等 数据类型后面加个 * 就是指针型

就这样白虎根据变量名前面的数据类型  将对应的小棒放入九宫格中的空余的小格子中

游戏继续运行了下去  时间一久你似乎发现了一个问题

白虎根据你递交的指令纸条 从上到下逐渐阅读  但是随着纸条的增加 

在一次纸条弄乱的情况下  白虎找不到应该从哪个位置开始阅读了  就这样你们的

游戏bug不断 经常因为纸条弄乱闹得不可开交

因此新的规则

指令开始的入口由一个  main()函数开始

main() 函数定义

int main()

{

写指令的地方

return 0;

}

就这样  不管纸条的多少 你们的游戏都可以正常的运行

因为数字是有正负的 所以你规定了默认情况下 代表数字的类型都是有正负的

规定

默认整数类型最高位 为符号位 0为正 1为负  

负数的二进制表示是 正数二进制 反码+1 就为负数的二进制

负数的二进制 反码+1 就等于对应正数的二进制

反码

0 b 的反码  1 b

0 b + 1 = 1 b

1 b + 1 = 10 b (因为 1+1 = 2 满2进1)

如 1 和 -1    二进制表示    因为整数型是四个字节  

1:  0000 0000 0000 0000 0000 0000 0000 0001 b

-1: 1111 1111 1111 1111 1111 1111 1111 1111 b

这样正数负数就能表示了  但是有时你又不想让一个int型变量有负数

于是新的关键字出现了

unsigned , signed

unsigned 表示无符号 就是最高位不为符号位了(无负数)

signed     表示有符号  最高位为符号位 (有负数)

如 1 和 -1  二进制有符号表示  

1:  0000 0000 0000 0000 0000 0000 0000 0001 b

-1: 1111 1111 1111 1111 1111 1111 1111 1111 b

而无符号表示是

1:  0000 0000 0000 0000 0000 0000 0000 0001 b

 4,294,967,295 :   1111 1111 1111 1111 1111 1111 1111 1111 b

这就是有符号和无符号的区别

指针型是什么呢

其实就是该变量存放的是格子的标号 也就是内存地址 具体怎么用等后面再说

现在是理论概念

对了还有一个规定 

定义变量的规定

数据类型 (空格)变量名(分号)

如  char name;  char* name;       

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值