`

const reference 关键字 示例 代码

 
阅读更多

#include <iostream>
using std::cout;
using std::endl;

int main()
{
	int i = 5;
    const int ic =10;
    const int *pic = &i;//从右往左定义“pic 是一个指向int类型的、被定义成const对象的指针”
    i = i+1;
    pic = pic + 1;
   // *pic = 2; Error  *pic 不能做左值
    const int *pic_1 = &ic;
    pic_1 = pic_1 + 1;
    
    const int * const pic_2 = &ic; //pic_2 是一个指向const int类型的、被定义成const对象的指针
    i = i + 1;
   // pic_2 = pic_2 + 1;// error assignment of read-only variable 'pic_3'
   // *pic_2 = 2; //Error  *pic_2 不能做左值
    
    const int * const pic_3 = &i;
    i = i+1;
   // pic_3 = pic_3 + 1; error assignment of read-only variable 'pic_3'
    //*pic_3 = 2; //Error  *pic_2 不能做左值
    
 //  int * const cpi = &ic; // cpi是一个指向 const int类型,被定义为非const对象的指针
   
   int * const cpi_1 = &i; //cpi_1是一个指向const int 类型,被定义为非const对象的指针
    *cpi_1 = 10;
   // cpi = cpi + 1;
    
	return 0;
}  //End of main




#include <iostream>
using std::cout;
using std::endl;

int main()
{
	int ival = 0;
    const int ival3 = 1;
    const int &rval1 = 1.01;
    int &rval2 = ival;
    int * const &rval3 = &ival;
    int *pi = &ival;
    int * &rval4 = pi;
    int &rval5 = *pi;
    
    //int &* prval1 = pi;//error: cannot declare pointer to 'int&'
    int * & prval1 = pi;//right
    
    const int & ival2 = 1; 
    
    //const int * & prval2 = &ival3;//error: cannot bind non-const lvalue reference of type 'const int*&' to an rvalue of type 'const int*'
    const int * const & prval2 = &ival3;
    
    //int * & prval3 = &ival;//error: cannot bind non-const lvalue reference of type 'int*&' to an rvalue of type 'int*'
    const int * & prval3 = &ival;//error: cannot bind non-const lvalue reference of type 'int*&' to an rvalue of type 'int*'
    //const int * const & prval3 = &ival1;
	return 0;
}  //End of main


分享到:
评论

相关推荐

    深入学习const和引用

    在C++编程中,`const`关键字与引用是两个重要的概念。本文将从这两个方面入手,详细介绍它们的基本原理、应用场景以及如何正确使用。 #### 一、const关键字 `const`关键字用来声明一个常量或者指定一个变量的某个...

    C++中static要点总结

    **示例代码:** ```cpp class MyClass { public: static int count; void increment() { ++count; } }; int MyClass::count = 0; int main() { MyClass obj1, obj2; obj1.increment(); obj2.increment(); ...

    如何理解c和c ++的复杂类型声明

    `const`关键字用于指定一个变量不可修改。例如: ``` const int n = 5; int const m = 10; ``` 这两条语句定义了两个整型常量`n`和`m`。 当`const`与指针一起使用时,情况会变得复杂。例如: ``` const int *p; int...

    如何理解c和c++的复杂类型声明

    `const`关键字用于指定变量或指针所指向的对象是只读的。例如: ```c++ const int *p; int const *q; ``` 这里`p`和`q`都被声明为指向`const int`类型的指针,这意味着通过`p`或`q`访问的整数值不能被修改。 #### `...

    教你理解复杂的C-C++声明

    `const`关键字用于定义不可修改的变量。例如: ```c++ const int n = 5; int const m = 10; ``` 在这两个例子中,`n`和`m`都是整型常量。无论`const`放在类型之前还是变量名之前,效果是一样的。 #### const与...

    TR0141 DelphiScript Keyword Reference - v1.3 (2008-03-02)

    下面是一些示例代码: ```delphscript Var I, J : Integer; Begin I := $F0; J := $8F; ShowMessage(IntToStr(I and J)); // 这里执行的是位与运算 End; Var S : String; Begin S := ''; If (Length(S) &gt; 0...

    C/C++编程规范

    示例代码展示了如何使用`#define`定义常量: ```c++ #define MAX 100 ``` 以及在C++中使用`const`定义常量的方式: ```cpp const int MAX = 100; const float PI = 3.14159; ``` #### 2. 构造函数中的初始化列表 ...

    教你理解复杂的C声明.txt

    在C语言中,`const`关键字用于创建不可修改的变量或指针。考虑以下几种情况: ```c const int n = 5; int const m = 10; ``` 这两种声明方式等效,都定义了名为`n`和`m`的整型常量。 - `const int *p;`:`p`是一个...

    IDL语法.pdf

    - **定义**:使用`const` 关键字定义常量。 - **示例**:`const unsigned long LengthOfNameString = 15;` - **支持类型**:IDL支持定义`long`, `unsigned long`, `unsigned short`, `char`, `boolean`, `float`, `...

    C A Reference Manual 5th edition

    - **语法表示**:解释了本书中使用的语法表示法,如使用粗体表示关键字,斜体表示示例文本等。 - **术语约定**:详细说明了书中使用的术语及其含义,帮助读者更好地理解各个概念。 - **符号和标记**:介绍了一些特殊...

    C++题目汇总.doc

    - **常引用(Const Reference)**:用于保护传递给函数的数据不被修改,声明时使用`const`关键字,如`const int &ra = a;`。 2. **函数返回引用**: - 函数返回引用可以避免复制大对象带来的开销,提高性能。 - ...

    The Annotated C++ Reference Manual(ARM)-Ch02

    本书不仅详尽地介绍了C++语言的各种特性,还提供了大量实用的编程技巧与示例代码。本章节主要聚焦于C++的词法约定部分。 #### 二、词法约定概述 词法约定是指程序设计语言中的最小单位——字符如何被组织成更高级别...

    [JavaScript.程序员参考].JavaScript.Programmer's.Reference.pdf(书中源码)

    7. **模块化**:ES6引入了模块系统,通过import和export关键字实现模块的导入和导出,有助于代码组织和复用。 8. **正则表达式**:JavaScript支持正则表达式,用于字符串的匹配、替换和提取,是进行复杂文本处理的...

    C++中volatile和mutable关键字用法详解

    示例代码: ```cpp #include "volatile_mutable.hpp" #include #include #include #include #include namespace volatile_mutable_ { /////////////////////////////////////////////////////////// int ...

    objective-c 程序设计 + 代码

    在这个“Objective-C程序设计+代码”主题中,我们将深入探讨这个语言的核心概念、语法以及如何通过实际代码示例来运用这些知识。 一、Objective-C基础 1. **类与对象**:Objective-C中的所有事物都是对象,它们由...

    C/C++编码规范

    在C/C++编程语言中,常量有两种常见的定义方式:`const`关键字和`#define`宏定义。 1. **`const`常量**: - **命名规则**:全部使用大写字母。 - **示例**: ```cpp const int SIZE = 100; ``` - **注意事项*...

    C++_笔试面试题目大汇总.pdf

    - 常引用声明时需加上`const`关键字。 - 不能通过常引用修改其所引用的变量的值。 #### 四、使用“引用”作为函数返回值 **格式**: ```cpp Type &functionName(ParameterList) { // 函数体 return reference; //...

Global site tag (gtag.js) - Google Analytics