• c++ 常用数据类型,命名规则, 不常有数据类型


    1. 常用数据类型

    最大值0111111111111111 = 32767
    最小值1000000000000000 = -32768

    short     最低16位  2**7 - 1  负值:反码
    int     至少和short一样长
    long    至少32位, 且至少与int一样长
    long long  至少64位, 且至少与long一样长
    unsigned short
    unsigned int
    unsigned long
    unsigned long long
    char
    bool

    float
    double
    long double

    针对数据类型出现的溢出现象,看c++如何解决

    #include <iostream>
    
    #define  ZERO 0
    
    #include <climits>
    
    int main(int argc, char const *argv[]) {
      using namespace std;
      short sam = SHRT_MAX;
      unsigned short sue = sam;
    
      std::cout << "sam: " << sam << " sue:" << sue << std::endl;
      std::cout << ZERO << '
    ';
    
      sam += 1;
      sue += 1;
    
      std::cout << "sam: " << sam << " sue:" << sue << std::endl;
      std::cout << ZERO << '
    ';
    
      sam = ZERO;
      sue = ZERO;
    
      std::cout << "sam: " << sam << " sue:" << sue << std::endl;
      std::cout << ZERO << '
    ';
    
      sam -= 1;
      sue -= 1;
    
    
      std::cout << "sam: " << sam << " sue:" << sue << std::endl;
      std::cout << ZERO << '
    ';
      return 0;
    }

    c++  linux编译执行命令

    g++ myfirst.cpp -o main && ./main

    结果:

    sam: 32767 sue:32767
    0
    sam: -32768 sue:32768
    0
    sam: 0 sue:0
    0
    sam: -1 sue:65535
    0

    2. 命名规则

    1. 在名称中只能使用字母字符, 数字和下划线(_)

    2. 名称的第一个字符不能是数字

    3. 区分大小写字母

    4. 不能使用c++关键字作名称

    5. 以两个下划线或下划线和大写字母打头的名称。(被保留给实现编译器及使用的资源使用。)。以一个下划线开头的名称被保留给实现,用作全局标识符。

    注意:(针对我自己的)

    1. 在使用字符和字符串时候一定要区分。例如‘%c’  和 “%s”

    2. 在命名的时候可以使用标识, 比如intVarName, 或者var_name_str, 这是自己应该提高的和注意的。  

    3. c++显示16进制等数据方法

    根据什么判断是什么类型呢?

    1. 如果第一位是1~9, 则基数是10(十进制)

    2. 如果第一位为0, 第二位为1~7, 则基数为8

    3. 如果前两位为0X或0x, 则基数为16

    例如:

      int chest = 0xaa;

    #include <iostream>
    
    #define  ZERO 0
    
    #include <climits>
    
    int main(int argc, char const *argv[]) {
      using namespace std;
    
      int chest 42;
      int waist 42;
      int inseam 42;
    
      std::cout << chst << '
    ';
      std::cout << hex << '
    '; // 更改为16进制显示
      std::cout << waist << '
    ';
      std::cout << oct << '
    '; // 更改为8进制显示
      std::cout << inseam << '
    ';

    三, 不常用数据类型

    1. signed char  和 unsigned char

    如果将char用作数值类型, 则unsigned char和signed char 之间的差异将非常重要。

    unsigned char类型的表示范围通常为0~255, 而signed char 的表示范围为-128 ~ 127.

    例如要使用一个char变量来存储像200这样大的值, 某些系统可以, 另一些系统不可以, 但使用unsigned char可以在任何系统上达到这种目的。

    例如:

      unsigned char ba;

    2. wcha_t

    程序处理的字符集可能无法用一个8位的字节表示, 如日文系统。可以用wcha_t, wchar_t 是一种整数类型, 有足够的空间表示扩展字符集。因此在一个系统中它可能是unsigned short , 也可能是int

    输入和输出:

      cin和cout将输入和输出看作char流, 因此不适合用来处理wchar_t类型。, 可以用类似的工具wcin和wcout来处理wchar_t流(iostream头文件里面封装了)。

      另外通过加上    <<   前缀L  >>   来表示宽字符常量和宽字符串。

      wchar_t bob = L‘P’;

      wcout << L''Tall" <<endl;

    3.char16_t 和char32_t

    随着unicode的熟悉与成熟, wchar_t 已经不再满足要求, c++11 新增了类型char16_t 和 char32_t

    char16_t 是无符号的, 16位, 用前缀小u表示: char16_t    ch1 = u'q';

    char32_t 也是无符号的, 32位, 用前缀大U表示: char32_t    ch2 = U'U000222B';

    与wchar_t一样, 也是底层类型, 一种内置的整型, 但底层类型可能随系统而已。

  • 相关阅读:
    hibernate基础18:HQL
    hibernate基础17:cascade 级联 与 Inverse 反转
    hibernate基础16:有序集合映射
    hibernate基础15:组合主键3
    hibernate基础15:组合主键2
    hibernate基础15:组合主键1
    hibernate基础14:OpenSessionInView(抽取web访问时对数据库开关事务)
    hibernate基础13:关联映射之组件映射
    hibernate基础12:关联映射之基于主键的双项多对多
    Jmeter CSV数据文件设置使用之一
  • 原文地址:https://www.cnblogs.com/renfanzi/p/7102871.html
Copyright © 2020-2023  润新知