zoukankan      html  css  js  c++  java
  • 指针常量与常量指针

    Int i=100;

    Const int *p = &i;//指向常量的指针

    *p = 10;//这样就会报错。  

     

    Int const *p1 = &i; p1不能在指向其他变量。//指针常量  为什么我的案例是可以?

    vs中

      在 main.c中我的指针常量其值可以更改,

      在 main.cpp 中依然可以更改

    dev中 可以更改+1.

     

     所以常量指针的出现尤为必要。发现*p指向的单元其值不可改变。说明应该是一个我们在对其操作的时候,不希望他的数据被改变的数据。

    比如 我们遍历一个数组,输进去 是2,8,3,排一个序,结果输出了 3,4,5这就不合理了。

    void mySort(int array[],int length){//这样就有可能带来值的变化

      //排序

    }

    所以合理的方式是:

    void mySort(const int array[],int length(){

      //排序

    }

    举例:

    #include <iostream>
    
    
    void printMyArray(const int array[], int length);
    int main(){
        
        int i = 100;
        const int *p = &i;
        //*p = 10;//常量指针,常量的指针,指向常量的指针,一旦常量被指定,其值不可改变。
        int const *p2 = &i;
        int ii = 20;
        p2 = &ii;//就是不报错hoo?我去用用devC++一样不报错 并且可以正常运行
    
        int array[] = { 2, 3, 4 };
        printMyArray(array, sizeof(array)/sizeof(array[0]));
    
        system("pause");
    
    }
    
    void printMyArray(const int array[], int length){
    
        for (int i = 0; i < length; i++)
        {
            printf("array[%d]=%d ",i, *(array + i));
        }
        //*array = 3;
        //错误    1    error C3892 : “array” : 不能给常量赋值    f : 	ryc++指针常量和常量指针1指针常量和常量指针1main.cpp    27    1    指针常量和常量指针1
    
    }

     

  • 相关阅读:
    把手机用户的身份验证简化到极致 – IEMI
    WIFI 功放芯片确定功率大小
    告别镜像端口:完成流量监控全功略
    windows 2003 server 配置为NTP服务器
    【转】VIM 多文件跳转
    【转】在Linux下FQ的看过来
    【转】VIM自动完成
    【转】VIM下的跳转练习
    【转】vim 窗口调整
    【转】Cscope的使用(领略Vim + Cscope的强大魅力)
  • 原文地址:https://www.cnblogs.com/letben/p/5225413.html
Copyright © 2011-2022 走看看