• const int * 和 int * const 傻傻分不清楚


    const int * a和int const *a一样,定义时不是必须初始化,指针可以指向其他变量,但是指向的变量的值不能修改。

    int * const定义时必须初始化,即必须指明指向哪个变量,定义后就不能再指向其他变量,但是指针指向的变量的值可以被修改。

     1 #include<iostream>
     2 using namespace std;
     3 int main()
     4 {
     5     //a和b是一样的,代表一个常整型数,必须手动初始化
     6     const int a = 0;
     7     int const b = 1;
     8     int ca = 3;
     9     int cb = 4;
    10     //c是一个指向常整数型的指针,可以不初始化
    11      int const *c ;//同const int *c;
    12     c = &ca;
    13     cout << *c << endl;//3
    14     //指针本身可以修改:可以再指向其他变量
    15     c = &cb;
    16     cout << *c << endl;//4
    17     //指针所指向的内存数据不能被修改:指针指向的变量不能再被赋值
    18     //*c = 5;//error
    19     
    20     int *e = &ca;
    21     cout << *e << endl;//3
    22     e = &cb;//正常的指针和变量都不是const的话可以改变指针的指向
    23     cout << *e << endl;//4
    24     *e = 6;//正常的指针和变量都不是const的话可以改变指针所指向变量的值
    25     cout << *e << endl;//6
    26     //d是常指针,必须初始化:指明指针指向哪个变量
    27     int  *  const d= &ca;
    28     cout << *d << endl;//3
    29     //指针变量本身不能修改,即不能再指向其他变量
    30     //d = &cb;//error
    31     *d = 7;
    32     //可以改变指针所指向的变量的值
    33     cout << *d << endl;//7
    34 
    35     //f:一个指向常整型的常指针(指针和它所指向的内存空间,均不能被修改)
    36     const int * const f = &cb;
    37     cout << *f << endl;
    38     //f = &ca;//error
    39     //*f = 9;//error
    40     system("pause");
    41     return 0;
    42 }
  • 相关阅读:
    UE 不生成.bak文件
    DOTWeen 使用
    unity admob
    UGUI 判断元素进入舞台
    unity 解决ScrollRect嵌套滚动问题
    oc字符串与c字符串转换和拷贝
    Object-c中的单例
    JAVA比较两个List集合的方法
    CentOS 7 配置静态IP
    CentOS7安装Jdk1.8
  • 原文地址:https://www.cnblogs.com/knmxx/p/9763879.html
Copyright © 2020-2023  润新知