• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

const关键字怎么用?

iksun 2018-04-12 浏览量:903
看一篇单片机的技术手册,有的地方这样写 int const tep;,有的地方这样写 const int tep; ,有什么区别吗?我印象c语言里面const 是在最前面的
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 当使用带有const的指针时其实有两种意思。一种指的是你不能修改指针本身的内容,另一种指的是你不能修改指针指向的内容。听起来有点混淆一会放个例子上来就明白了。
          先说指向const的指针,它的意思是指针指向的内容是不能被修改的。它有两种写法。
          const int* p; (推荐)
          int const* p;
          第一种可以理解为,p是一个指针,它指向的内容是const int 类型。p本身不用初始化它可以指向任何标示符,但它指向的内容是不能被改变的。
          第二种很容易被理解成是p是一个指向int的const指针(指针本身不能被修改),但这样理解是错误的,它也是表示的是指向const的指针(指针指向的内容是不能被修改的),它跟第一种表达的是一个意思。为了避免混淆推荐大家用第一种。
          再说const指针,它的意思是指针本身的值是不能被修改的。它只有一种写法
          int* const p=一个地址; (因为指针本身的值是不能被修改的所以它必须被初始化)
          这种形式可以被理解为,p是一个指针,这个指针是指向int 的const指针。它指向的值是可以被改变的如*p=3;
          还有一种情况是这个指针本身和它指向的内容都是不能被改变的,请往下看。
          const int* const p=一个地址;

          int const* const p=一个地址;

    对于定义变量,两者没有区别,都是指定义常量。

    • 发布于 2018-04-12
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:17

  • 都是一样的,都将变量变成了常量,但是对于指针是有差别的,在指针的操作上写法不一样效果不一样
    • 发布于2018-04-12
    • 举报
    • 评论 0
    • 0
    • 0

  • 你这这两种写法没有区别,需要注意的是如果是针对指针的就比较麻烦了。
    • 发布于2018-04-12
    • 举报
    • 评论 0
    • 0
    • 0

  • 都是定义一个常量变量,没啥区别的
    • 发布于2018-04-12
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个const修饰常量是没有区别的,只有在修饰指针变量时前后才是有区别的
    • 发布于2018-04-12
    • 举报
    • 评论 0
    • 0
    • 0

  • 加const的变量只能访问const的变量,而且不能修改
    • 发布于2018-04-12
    • 举报
    • 评论 0
    • 0
    • 0

  • constant 也就是常量的意思
    1.修饰变量
      如const int a =3;
       常量a的值不能再修改

    2.修饰指针
      如 const  char*p =  123;
        p[0]='4'; 是错的, 字符串内容不允许改
       char *const p = "123";
         p ="456"; 是错误的, 指针不允许再指向其他地址
    3.常引用
       多用于参数, 防止参数被修改,引用是避免创建参数副本
       void test( const struct A &a){}

    4.常函数
      就是类的成员函数,参数后面加个const, 此函数中不允许修改类的数据成员
      void test() const 
        {}
    • 发布于2018-04-12
    • 举报
    • 评论 0
    • 0
    • 0

  • 编译器有关,一般来说,都是支持的。不支持时,编译器会报错的。
    • 发布于2018-04-13
    • 举报
    • 评论 0
    • 0
    • 0

  • 这两种用法都是可以的,const 只是说这个变量是一个常 量,不可以赋值。
    • 发布于2018-04-14
    • 举报
    • 评论 0
    • 0
    • 0

  • 一般用的是后面那种写法,前面那种写法比较少见

    int tep说明这个变量是int型,加const说明它不可赋值

    • 发布于2018-04-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 没有区别 ,写法不一样而已
    • 发布于2018-04-18
    • 举报
    • 评论 0
    • 0
    • 0

  • 没有区别 写法不用而已~
    • 发布于2018-04-18
    • 举报
    • 评论 0
    • 0
    • 0

  • 没有啥区别,只是程序段写的方法不一样
    • 发布于2018-04-22
    • 举报
    • 评论 0
    • 0
    • 0

  • const int 和int const用法是一样的,但是指针就完全不同了,const int *标示指针内容不可修改,还有一种是指针指向的东西不能修改。

    • 发布于2018-04-29
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

const关键字怎么用?