C++ 数据类型

04-11 1556阅读

数据类型介绍

C++ 数据类型

  • 数据类型的作用:编译器预算数据分配的内存空间大小。

    C++ 数据类型

    ps:可以通俗理解为:数据类型是用来规范内存的开销,约定数据在内存中的格式,便于存储。

    变量

    变量的语法

    • 在计算机程序中,变量是用来存储数据的一个内存区域,并用一个名字来表示这个区域。

      C++ 数据类型

      使用特点

      • 变量在使用前必须先定义,定义变量前必须有相应的数据类型;
      • 在程序运行过程中,其值可以改变;

        语法说明

        C++ 数据类型

        示例代码

        #include 
        int main() {
            // 1. 定义1个int变量age同时赋值为18(这叫初始化),然后打印内容
            int age = 18;
            printf("%d\n", age);
            // 2. 修改age的内容为20,然后打印内容
            age = 20;
            printf("%d\n", age);
            // 3. 定义2个int变量,然后在分别赋值,然后再打印内容
            int a, b;
            a = 123;
            b = 256;
            printf("%d\n", a);
            printf("%d\n", b);
            // 4. 定义1个float类型变量height同时赋值,然后打印内容
            float height = 1.77;
            printf("%f\n", height);
            return 0;
        }

        标识符命名

        通过上面的联系,变量会定义了,类型和赋值都一些了解了。但变量名字大家需要注意,变量名也叫标识符,它是用户编程时起的一个名字(变量、函数、结构体等都需要名字),为了便于后面程序中的使用,有一些命名规范我们需要遵守。

        命令规范

        好的命名习惯要做到见名知意,如下:

        • 大驼峰
            • 每个单词首字母大写, 例如: MyFirstName
            • 小驼峰
                • 第二个单词开始首字母大写, 例如: myFirstName
                • 下划线命名
                    • 每个单词之间使用下划线连接, 例如: my_first_name

                    示例

                    背景:

                    班长家的房子是一个价值千万的四层别墅,别墅的房间有很多、各种家居也非常多。他所住的房间是在三楼东边的卧室,房间里有学习桌和座椅,座椅非常豪华,有2.5米高,价值一万多块。

                    请为班长的座椅起个名字,要求看到名字就知道是哪个座椅。

                    例如:

                    • ThirdFloorEastRoomSeat
                    • thirdFloorEastRoomSeat
                    • third_floor_east_room_seat

                      char类型

                      char表示为字符类型,用于存储单个字符,每个字符变量都是由8个bit位构成,在内存中就是1个字节。

                      相关特性:

                      • 在给字符型变量赋值时,需要用一对英文半角格式的单引号(' ')把字符括起来。
                      • 字符变量在内存单元存储时,是将与该字符对应的ASCII码放到变量的存储单元中。

                        C++ 数据类型

                        • char的本质就是一个1个字节大小的整型。
                          #include 
                          int main() {
                              // 定义一个char类型变量,同时赋值为97,分别用%d,%c打印结果
                              char ch = 97;
                              printf("%d\n", ch);
                              printf("%c\n", ch);
                              // 定义一个char类型变量,同时赋值为'a',分别用%d,%c打印结果
                              char ch2 = 'a';
                              printf("%d\n", ch2);
                              printf("%c\n", ch2);
                              return 0;
                          }

                          布尔类型

                          布尔类型是一种处理逻辑的类型,其有两个值,分别是真(true)或假(false),它在内存中的长度一般只占用1个字节。

                          • 早期C语言没有布尔类型数据,以0代表逻辑假,非0代表逻辑真;
                          • C99标准定义了新的关键字_Bool,提供了布尔类型,或者也可以使用stdbool.h中的bool;

                            示例代码:

                            #include 
                            #include 
                            int main() {
                                // 定义一个bool类型变量,同时赋值为true,然后打印变量的值
                                bool flag = true;
                                printf("%d\n", flag);
                                // 修改上一步变量的值为false,然后打印变量的值
                                flag = false;
                                printf("%d\n", flag);
                                return 0;
                            }

                            数据类型长度

                            存储单位说明

                            术语

                            含义

                            bit(比特)

                            一个二进制代表一位,一个位只能表示0或1两种状态。数据传输是习惯以“位”(bit)为单位。

                            Byte(字节)

                            一个字节为8个二进制,称为8位,计算机中存储的最小单位是字节。数据存储是习惯以“字节”(Byte)为单位。

                            1b

                            1bit

                            1B

                            1Byte = 8bit

                            1KB

                            1KB = 1024B

                            1MB

                            1MB = 1024KB

                            1GB

                            1GB = 1024MB

                            1TB

                            1TB = 1024GB

                            1PB

                            1PB = 1024TB

                            ……

                            ……

                            • 示例

                              班长家的大别墅装了一个千兆光纤,请帮班长计算一下,班长的网速最高可以达到多少?

                              基本数据类型长度

                              数据类型的长度会受操作系统平台的影响,所以在不同平台下基本数据类型的长度是不一样的。

                              C++ 数据类型

                              #include 
                              int main() {
                                  // 通过sizeof打印各种类型的长度(大小)
                                  printf("char length = %d\n", sizeof(char));
                                  printf("short length = %d\n", sizeof(short));
                                  printf("int length = %d\n", sizeof(int));
                                  printf("long length = %d\n", sizeof(long));
                                  printf("float length = %d\n", sizeof(float));
                                  printf("double length = %d\n", sizeof(double));
                                  printf("long double length = %d\n", sizeof(long double));
                                  // 定义int类型变量,sizeof打印变量的大小
                                  int a;
                                  printf("a length = %d\n", sizeof(a));
                                  return 0;
                              }

                              可移植的类型

                              最开始我们介绍C语言是一门跨平台的编程语言,使用C语言编写的程序可以在不同的系统平台下运行,这里有一些前提,为了更好的兼容不同平台,我们在使用基本上数据类型的时候会采用可移植的类型,这些类型可以确保在不同的平台下稳定的运行。

                              • C语言在可移植类型头文件 stdint.h 和 inttype.h 中规定了精确宽度整数类型,以确保C语言的类型在各系统内功能相同。

                                示例代码:

                                #include 
                                #include 
                                int main() {
                                    // 8位整型
                                    int8_t a=127;
                                    printf("%d\n", sizeof(a));
                                    // 16位整型
                                    int16_t b = 127;
                                    printf("%d\n", sizeof(b));
                                    // unsigned 无符号,没有符号位,数值为正数
                                    uint8_t c = 255;
                                    uint16_t d = 200;
                                    return 0;
                                }

                                常量

                                与变量不同,常量的值在程序运行时不会改变。

                                整型常量

                                100,200,-100,0

                                实型常量

                                3.14 , 0.125,-3.123

                                字符型常量

                                'a', 'b', '1'

                                字符串常量

                                "a", "ab","12356"

                                自定义的常量

                                常量的定义方式有两种:

                                // 预处理常量
                                #define PI 3.14
                                // const常量
                                const double pi2 = 3.14;

                                示例代码:

                                #include 
                                // 预处理常量
                                #define PI 3.14
                                int main() {
                                    // const常量
                                    const double pi2 = 3.14;
                                    // 常量不能修改,以下代码是错误的
                                    PI = 3.33;
                                    pi2 = 3.33;
                                    return 0;
                                }

                                系统定义的常量

                                C语言提供了一些常量库,比如有:float.h、limits.h等,这些常量同样受操作系统平台的影响会在不同的平台下不一样。

                                float.h:

                                C++ 数据类型

                                limits.h:

                                C++ 数据类型

                                #include 
                                #include 
                                #include 
                                int main() {
                                    // 打印float类型能够表示的最大值和最小值
                                    printf("%lf\n", FLT_MIN);
                                    printf("%lf\n", FLT_MAX);
                                    // 打印char类型位数以及能够表示的最大值和最小值
                                    printf("%d\n", CHAR_BIT);
                                    printf("%d\n", CHAR_MIN);
                                    printf("%d\n", CHAR_MAX);
                                    // 打印short类型能够表示的最大值和最小值
                                    printf("%d\n", SHRT_MIN);
                                    printf("%d\n", SHRT_MAX);
                                    // 打印int类型能够表示的最大值和最小值
                                    printf("%d\n", INT_MIN);
                                    printf("%d\n", INT_MAX);
                                    // 打印long类型能够表示的最大值和最小值
                                    printf("%ld\n", LONG_MIN);
                                    printf("%ld\n", LONG_MAX);
                                    return 0;
                                }
VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]