zoukankan      html  css  js  c++  java
  • C++const与指针

    1.指向常量的指针变量

      指向常量的指针变量的定义方法:

      const 类型标识符 *指针变量名;

      如:

       const int *p; 

      这种方法定义的指针变量只可读取它所指向的变量或常量的值,不可借助该指针变量对其所指向的对象的值进行修改(即重新赋值)。但是,可允许这种指针变量指向另外一个同类型的其他变量。

    本人自学,教材可能有点老,有问题的话求大家指正!!!谢谢!!!

    2.指针常量

      指针常量的定义格式:

      类型标识符 *const 指针变量名=初始指针值;

      如:

       char * const p="abcde"; 

      该方法定义的指针变量,其值(是一个指针值)不可进行修改(即不允许该指针变量再指向另外一个别的变量),但可以借助该指针变量对其所指向的对象的值进行读取或修改。特别注意,这种指针在定义时必须初始化。

    3.指向常量的指针常量

      指向常量的指针常量的第一方法为:

      const 类型标识符 * const 指针变量名 = 初始指针值;

      如:

       int b;

       const int* const p=&b; 

      使用这种方法定义的变量,既不允许修改指针变量的值也不允许借助该指针变量对其所指向的对象的值进行修改。特别注意,该变量在定义的时候同样必须初始化。

    例题:

    • 指向常量的指针变量
     1 #include<iostream>
     2 using namespace std;
     3 
     4 int main()
     5 {
     6     const int i=20;
     7     int k =40;
     8     const int *p; 
     9     p=&i;   
    10     cout << *p << ' ' << i << endl;
    11     p=&k;   
    12     cout << *p << ' ' << k << endl;
    13     k=200;  
    14     cout << k << endl;
    15     return 0;
    16 }
    • 指针常量
     1 #include<iostream>
     2 using namespace std;
     3 
     4 int main()
     5 {
     6     char s[]="hello world!";
     7     char * const p=s;
     8     //p="xyz";  //该句错误,不可再使指针变量指向另外一个地址(指针)
     9     cout << *p << endl;
    10     *p='w'; 
    11     cout << *p << endl;
    12     *p='q'; 
    13     cout << *p << endl;
    14     return 0;
    15 }
    • 指向常量的指针常量
     1 #include<iostream>
     2 using namespace std;
     3 
     4 int main()
     5 {
     6     int a=10;
     7     int c=30;
     8     const int b=20;
     9     const int * const p=&a;
    10     cout << *p << endl;
    11     const int * const q=&b;
    12     cout << *q << endl;
    13     //p=&c; //错误
    14     //*p=50;    //错误  
    15     return 0;
    16 }
    17 
    18 //菜鸟,求大家批评指教,代码编写习惯和规范等等!!!谢谢!!!

    本人自学,教材可能有点老,有问题的话求大家指正!!!谢谢!!!

  • 相关阅读:
    halcon机器视觉工程开发思路
    创建子窗口新线程-线程间操作无效:从不是创建控件的线程访问它
    c#多个按钮执行同一类事件-按钮按下和弹起
    winform子窗口与父窗口的交互-使用委托与事件
    winform子窗口调用父窗口的控件及方法-一般调用
    Lambda表达式的用法
    c#WinForm中TeeChart控件的注册和使用
    c#实现串口通信
    [Revit]开始:编写一个简单外部命令
    [Revit]Autodesk Revit 二次开发整理(资料、准备工作和环境搭建)
  • 原文地址:https://www.cnblogs.com/MichaelBin/p/4523308.html
Copyright © 2011-2022 走看看