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

    看到一份编程规范说:
    如果函数参数是指针,且仅作输入用,则必须在类型前面加上const,以用来防止该指针在函数体内被意外修改。

    指针做参数时,既可以是输入参数,也可以是输出参数。输出参数可能会改变该指针指向的地址的内容,程序其它部分访问该指针时易访问不是自己想要的数据。
    指针作为输入参数,加上const关键字做个限定,防止修改函数外部数据。

    在函数形参生命中把指针定义为const型时,函数中的代码无法修改传入指针指向的实际变量。const型的变量不能被程序修改,可以被赋予初值。

       const char* p = "hello world";     指针指向的变量不可以改变,指针本身可以改变(即指向常量的指针)

                这种情况下,以下语句是合法的:

                               char c = *p;

                               p++;

                                    以下语句不合法:

                               *p = 'a';

                               p[5] = 'b';

        char *const p表示指针指向的变量可以改变,但指针本身不能改变。(即指向固定位置的指针)

                           比如int *const p = &i;

                                   那么*p = 5;是合法的,p++是不合法的

        const char* const p 两者都不可以改变

  • 相关阅读:
    译:编程面试的10大算法概念汇总
    Android内存优化之封装九宫格
    Android Java 程序员必备开发工具
    译:如何成为一个通晓多种编程语言的程序员
    8大排序算法图文讲解
    Android酷炫实用的开源框架(UI框架)
    Android动态加载字节码
    利用无效字节码指令引发逆向工具崩溃(二)
    oracle 12c linux服务器启动监听
    oracle无主键去重方法
  • 原文地址:https://www.cnblogs.com/cj2014/p/3746157.html
Copyright © 2011-2022 走看看