📜  C / C++中的字面量类型及其示例

📅  最后修改于: 2021-05-26 02:44:09             🧑  作者: Mango

分配给每个常量变量的值称为字面量。通常,术语,常量和字面量均可互换使用。例如,“ const int = 5;”是一个常量表达式,值5称为常量整数字面量。有四种类型用C字面量和五种类型在C++中字面量的。

C / C++的字面量被相应地划分为:

  1. 整数字面量:用于表示和存储整数值。整数字面量有两种类型,即
    1. 前缀:整数字面量的前缀指示将在其中读取的基础。
      例如:
      0x10 = 16
      
      Because 0x prefix represents a HexaDecimal base.
      So 10 in HexaDecimal is 16 in Decimal.
      Hence the value 16. 
      

      基本上有四种代表。

      1. 十进制数(以10为基数):一个非零的十进制数字,后跟零个或多个十进制数字(0、1、2、3、4、5、6、7、8、9)。

        例如:

        56, 78
        
      2. 进制数(以8为底): 0后接零个或多个八进制数字(0、1、2、3、4、5、6、7)。

        例如:

        045, 076, 06210
        
      3. 十六进制数(以16为基数): 0x0X,后跟一个或多个十六进制数字(0、1、2、3、4、5、6、7、8、9,a,b,b,c,c ,d,D,e,E,f,F)。

        例如:

        0x23A, 0Xb4C, 0xFEA
        
      4. Binary-literal(base 2): 0b0B,后跟一个或多个二进制数字(0,1)。

        例如:

        0b101, 0B111
        
    2. 后缀:整数字面量的前缀表示要读取的类型。

      例如:

      12345678901234LL 
      indicates a long long integer value 12345678901234
      because of the suffix LL
      

      这些根据其数据类型以多种方式表示。

      1. int:不需要后缀,因为默认情况下将整数常量指定为int数据类型。
      2. unsigned int:整数常量末尾的字符u或U。
      3. long int:整数常数末尾的字符l或L。
      4. unsigned long int:整数常量末尾的字符ul或UL。
      5. long long int:整数常数末尾的字符ll或LL。
      6. unsigned long long int:整数常量末尾的字符ull或ULL。

    例子:

    C
    #include 
      
    int main()
    {
      
        // constant integer literal
        const int intVal = 10;
      
        printf("Integer Literal:%d \n",
               intVal);
        return 0;
    }


    C++
    #include 
    using namespace std;
      
    int main()
    {
        // constant integer literal
        const int intVal = 10;
        cout << "Integer Literal: "
             << intVal << "\n";
      
        return 0;
    }


    C
    #include 
      
    int main()
    {
        // constant float literal
        const float floatVal = 4.14;
      
        printf("Floating point literal: %.2f\n",
               floatVal);
        return 0;
    }


    C++
    #include 
    using namespace std;
      
    int main()
    {
        // Real literal
        const float floatVal = 4.14;
      
        cout << "Floating-point literal: "
             << floatVal << "\n";
        return 0;
    }


    C
    #include 
      
    int main()
    {
        // constant char literal
        const char charVal = 'A';
      
        printf("Character Literal: %c\n",
               charVal);
        return 0;
    }


    C++
    #include 
    using namespace std;
      
    int main()
    {
        // constant char literal
        const char charVal = 'A';
      
        // wide char literal
        const wchar_t charVal1 = L'A';
      
        cout << "Character Literal: "
             << charVal << "\n";
        cout << "Wide_Character Literal: "
             << charVal1 << "\n";
      
        return 0;
    }


    C
    #include 
      
    int main()
    {
        const char str[]
            = "Welcome\nTo\nGeeks\tFor\tGeeks";
        printf("%s", str);
        return 0;
    }


    C++
    #include 
    using namespace std;
      
    int main()
    {
        const string str
            = "Welcome\nTo\nGeeks\tFor\tGeeks";
        cout << str;
        return 0;
    }


    输出:

    Integer Literal:10
    
  2. 浮点字面量:这些用于表示和存储实数。实数具有整数部分,实数部分,小数部分和指数部分。浮点字面量可以以十进制或指数形式存储。在表示浮点小数时,必须记住两点以产生有效的字面量:
    • 在十进制形式中,必须包含小数点,指数部分或两者,否则会导致错误。
    • 在指数形式中,必须包含整数部分,小数部分或两者,否则将导致错误。

    浮点字面量表示法很少显示如下:

    有效的浮动字面量:

    10.125
    1.215-10L
    10.5E-3
    

    无效的浮动字面量:

    123E
    1250f
    0.e879
    

    例子:

    C

    #include 
      
    int main()
    {
        // constant float literal
        const float floatVal = 4.14;
      
        printf("Floating point literal: %.2f\n",
               floatVal);
        return 0;
    }
    

    C++

    #include 
    using namespace std;
      
    int main()
    {
        // Real literal
        const float floatVal = 4.14;
      
        cout << "Floating-point literal: "
             << floatVal << "\n";
        return 0;
    }
    
    输出:
    Floating point literal: 4.14
    
  3. 字符字面量:这是指用于在单引号内存储单个字符的字面量。要存储多个字符,需要使用一个字符数组。在单引号中存储多个字符将引发警告,并仅显示字面量的最后一个字符。它产生以下两种表示形式:
    • char类型:用于存储普通字符字面量或窄字符字面量。 C和C++都支持此功能。

      例子:

      // For C
      char chr = 'G';
      
      // For C++
      char chr = 'G';
      
    • wchar_t类型:仅在C++中支持此字面量,而在C中不支持。如果字符后跟L,则字面量必须存储在wchar_t中。这代表宽字符字面量。

      例子:

      // Not Supported For C
      
      // For C++
      wchar_t chr = L'G';
      

    例子:

    C

    #include 
      
    int main()
    {
        // constant char literal
        const char charVal = 'A';
      
        printf("Character Literal: %c\n",
               charVal);
        return 0;
    }
    

    C++

    #include 
    using namespace std;
      
    int main()
    {
        // constant char literal
        const char charVal = 'A';
      
        // wide char literal
        const wchar_t charVal1 = L'A';
      
        cout << "Character Literal: "
             << charVal << "\n";
        cout << "Wide_Character Literal: "
             << charVal1 << "\n";
      
        return 0;
    }
    
    输出:
    Character Literal: A
    

    转义序列:有多种特殊字符可用于执行各种操作。

  4. 字符串字面量:字符串字面量与字符字面量相似,不同之处在于它可以存储多个字符并使用双引号存储相同的字符。它还可以容纳上表中提到的特殊字符和转义序列。

    例子:

    // For C
    char stringVal[] = "GeeksforGeeks";
    
    // For C++
    string stringVal = "GeeksforGeeks"
    

    例子:

    C

    #include 
      
    int main()
    {
        const char str[]
            = "Welcome\nTo\nGeeks\tFor\tGeeks";
        printf("%s", str);
        return 0;
    }
    

    C++

    #include 
    using namespace std;
      
    int main()
    {
        const string str
            = "Welcome\nTo\nGeeks\tFor\tGeeks";
        cout << str;
        return 0;
    }
    
    输出:
    Welcome
    To
    Geeks    For    Geeks
    
  5. 布尔字面量:此字面量仅在C++中提供而在C中不提供。它们用于表示布尔数据类型。这些可以带有两个值:
    • true:表示真实值。不能认为它等于int 1。
    • false:表示False值。不得将其视为等于int 0。

    例子:

    // C++ program to show Boolean literals
      
    #include 
    using namespace std;
      
    int main()
    {
        const bool isTrue = true;
        const bool isFalse = false;
      
        cout << "isTrue? "
             << isTrue << "\n";
        cout << "isFalse? "
             << isFalse << "\n";
      
        return 0;
    }
    
    输出:
    isTrue? 1
    isFalse? 0
    

有关C / C++中的常量/字面量的相关文章:

  • 用户定义的字面量。
  • C++中的原始字符串字面量
  • C中的八进制字面量
  • C中的复合字面量
  • 字符字面量C++的类型差异。
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”