zoukankan      html  css  js  c++  java
  • c++ 概念及学习/c++ concept&learning(二)

    上篇内容讲述了整个语言的发展【为什么会产生编程语言】,以及学习C++所需要掌握的内容。
    这节开始认识第一部分最基本的内容:C++的内建类型,也就是基本类型。

    在这些知识之前留一个问题:为什么基本所有语言中都有相似的这些基本类型。


    bool : 用于表示真/假

    bool b_ret1 = true;
    bool b_ret2 = false;

    short /long :short用于缩减/增大整数表示的范围,也就是占用内存的多少。
    signed / unsigned :指定符号。但不会改变内存大小。

    int(signed int) / unsigned int :表示一般意义上的整数,两者的区别在于有无符号。
    加上short,signed,unsigned后,就可以控制整数的范围。所以有了多种整数:
    int(signed int) / unsigned int
    signed short int / unsigned short int
    signed long int / unsigned long int

    int age = 20;
    unsigned int age2 = 20;
    short int age3 = 20;
    unsigned short int small_int = 22222;
    unsigned long int big_number = 2222222222;

    char(signed char) / unsigned char :表示字符。编程中用char已经足够了,效率也不会用影响。
    这个类型有些纠结,本意是表示字符的,但是经常用它的数组存储数据,等说到指针的时候,再详细说吧。

    char letter_char = 'c';

    wchar_t :宽字节字符。由于char在计算机存储中占用一个字节,最多能表示256个字符,
    英语字符是足够储存,但是光汉字就有上万个,char已经无能为力了。
    所以wchar_t占两个字节,甚至四个字节,完成足够表示其它民族的语言。

    wchar_t wide_char = L'c'

    float: 单精度浮点 double:双精度浮点 long double :扩展精度
    两个类型在概念上都是小数,double比float多占用了内存空间,表示的更精确。一般的小数用float就可以了。

    float _length = 3.5f;
    double _length = 3.5555
    long double l_legnth = 3.5e-3L

    void:空类型。一般用表示无返回值 ,或者不确定类型的对象。

    return void;
    void* p = 0;

    Windows XP 32位平台下的取值范围:

    Type

    Size

    数值范围

    无值型void

    0 byte

    无值域

    布尔型bool

    1 byte

    true   false

    有符号短整型short [int] /signed short [int]

    2 byte

    -32768~32767

    无符号短整型unsigned short [int]    

    2 byte

    0~65535

    有符号整型int /signed [int]

    4 byte

    -2147483648~2147483647

    无符号整型unsigned [int]

    4 byte

    0~4294967295

    有符号长整型long [int]/signed long [int]

    4 byte

    -2147483648~2147483647

    无符号长整型unsigned long [int]

    4 byte

    0~4294967295

    long long

    8 byte

    0~18446744073709552000

    有符号字符型char/signed char

    1 byte

    -128~127

    无符号字符型unsigned char

    1 byte

    0~255

    宽字符型wchar_t (unsigned short.)

    2 byte

    0~65535

    单精度浮点型float

    4 byte

    -3.4E-38~3.4E+38

    双精度浮点型double

    8 byte

    1.7E-308~1.7E+308

    long double

    8 byte

     

    由于平台和编译器的不同,每种类型的范围及所占内存大小并不确定。想具体确定可以用下边代码(转自:http://www.cnblogs.com/ma6174/archive/2012/02/04/2337958.html

    #include <stdio.h> 
    #include <limits.h>
    #include <float.h>
    #include <stdlib.h>
    int main(void)
    {
        printf("char类型的变量存储值从%d到%d
    ", CHAR_MIN, CHAR_MAX);
        printf("unsigned char类型的变量存储值从0到%u
    ", UCHAR_MAX);
        printf("short类型的变量存储值从%d到%d
    ", SHRT_MIN, SHRT_MAX);
        printf("unsigned short类型的变量存储值从0到%u
    ", USHRT_MAX);
        printf("int类型的变量存储值从%d到%d
    ", INT_MIN, INT_MAX);
        printf("unsigned int类型的变量存储值从0到%u
    ", UINT_MAX);
        printf("long类型的变量存储值从%ld到%ld
    ", LONG_MIN, LONG_MAX);
        printf("unsigned long类型的变量存储值从0到%lu
    
    ", ULONG_MAX); 
        printf("long long类型的变量存储值从%lld到%lld
    ", LLONG_MIN, LLONG_MAX); 
        printf("unsigned long long类型的变量存储值从0到%llu
    ", ULLONG_MAX);     
        printf("最小的非零float类型变量的值的是%.3e
    ", FLT_MIN);
        printf("最大的float类型变量的值的是%.3e
    ", FLT_MAX);
        printf("最小的非零double类型变量的值的是%.3e
    ", DBL_MIN);
        printf("最大的double类型变量的值的是%.3e
    
    ", DBL_MAX);
        printf("最小的非零long double类型变量的值的是%.3Le
    ", LDBL_MIN);        
        printf("最大的long double类型变量的值的是%.3Le
    ", LDBL_MAX);           
        printf("float类型的变量提供%u位精度的小数位数
    ", FLT_DIG);
        printf("double类型的变量提供%u位精度的小数位数
    
    ", DBL_DIG);
        printf("long double类型的变量提供%u位精度的小数位数
    ", LDBL_DIG);
        system("pause"); 
        return 0; 
    }
  • 相关阅读:
    欧拉计划之题目7:找出第10001个质数
    DShow实现一个avi视频的播放(含有个人解释和注释)
    DirectX 9 SDK安装后在vs2010里编译BaseClasses出错问题解决方法
    C#内存占用大量资源的解决办法
    C#读写ini文件操作
    【Java】编程技术经典书籍列表
    【数据库_Mysql】查询当前年份的sql
    【数据库_Mysql】MySQL动态语句 if set choose where foreach trim
    【JavaScript】20款漂亮的css字体
    【数据库_Mysql】<foreach>标签在Mysql中的使用
  • 原文地址:https://www.cnblogs.com/cppp/p/3788911.html
Copyright © 2011-2022 走看看