数据类型:

整型:

short 2字节 16位 能存储的数的范围
    signed short  -32768 -- 32767    (有符号)
    unsigned short 0-65535           (无符号)
​
signed类型有符号位
unsigned类型没有符号位
int 4字节 32位
    signed int -2,147,483,648-2,147,483,647
    unsigned int  0-4,294,967,295
​
long  4字节  32位(MSVC中是与int一样大,其他编译器中Long肯定比int来的大)
​
long long 8字节 64位
signed和unsigned是类型修饰符
含义:
    signed 有符号变量;有符号位,可以表示负数
    unsigned 无符号变量;无符号位,无法表示负数
布尔型
_Bool (C中的bool类型)
如果要按照C++的方式来写,需要包含头文件
#include <stdbool.h>    
​
bool(C++的类型)
浮点数:在计算机中是无法精准存储的 存在尾数和指数
涉及到浮点寄存器;浮点数是不精确存储
如浮点数1.1实际上它的存储可能是1.100000000000100000001
那么在搜某个值的时候(如:x=7.1);必须要搜7.1<x<7.2
​
Float 单精度浮点型 4字节
    
double 双精度浮点型 8字节
字符或字符串
char(Ascii) 1字节    8位
存储某个字符其实就是存储一个ascii编码
​
字符串的表示
    1.数组
    存储一个数组
        char szBuffer[] = "hello"     #中括号表示一个数组
    Fn+f9打断点后,将szBuffer变量输入到内存调试栏中
    68 65 6c 6c 6f 00得到十六进制数
    0x68->Ascii码中的小写h
    0x65->e    直接对照Ascii码表即可
    ...
    00表示字符串的结束符(表示终止)--->如果是一个字符串就必须有00结尾
​
    2.指针:
    char *szBuffer = "hello";
    68 65 6c 6c 6f 00(字符串在内存中的表示;00表示字符串结束的符号)
    内容是一样的,数组和指针的区别:数组在声明阶段在内存中就已经有地址了,但是指针在声明    阶段还没有数组
    
​
wchar_t (unicode) 2字节  16位
    字符串的表示:
    wchar_t szBuffer[] = L"hello";   #需要在字符串前加上L,才能表示wchar_t类型的参数,没有加L则表示char类型的
    内存读取:68 00 65 00 6c 00 6c 00 6f 00 00 00
    但是可以看到wchar_t类型一个字符是以2个字节来表示的,unicode(wchar_t)可以表示ASCII(char)表示不了的字符,wchar_t类型的数据可以兼容char类型的,预留的00是为了在兼容的同时还可以去表示其他的字符。 
char类型和wchar_t类型在内存中使用整数表示的,那么这个时候就可以表明这两个类型的值也是有存储范围的
char => 0-255(无符号) -128-127(有符号)
wchar => 0 - 65535 (无符号)...
  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值