这几天面试了几家公司,都有问到const的作用。因为我以前看过一篇文章,上面说你如果打了“只读”,就差不多了。
不过今天面试,面试官问:cosnt除了“只读”还有没有其他的作用。我说不知道了。
回来查了下资料,
(1)可以定义 const 常量
(2)const可以修饰函数的参数、返回值,甚至函数的定义体。被const修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。
const意味着"只读"。区别如下代码的功能非常重要。
const int a; int const a; const int *a; int * const a; int const * a const; |
-
前两个作用是一样的,a是一个常整型数。
-
第三个意味着a是一个指向常整型数的指针(也就是,整型数是不可修改的,但指针可以)。
-
第四个意思是a是一个指向整型数的常指针(也就是,指针指向的整型数是可以修改的,但指针是不可修改的)。
-
最后一个意味着a是一个指向常整型数的常指针(也就是,指针指向的整型数是不可修改的,同时指针也是不可修改的)。
(1) 关键字const的作用是为给读你代码的人传达非常有用的信息。例如,在函数的形参前添加const关键字意味着这个参数在函数体内不会被修改,属于"输 入参数"。在有多个形参的时候,函数的调用者可以凭借参数前是否有const关键字,清晰的辨别哪些是输入参数,哪些是可能的输出参数。
(2)合理地使用关键字const可以使编译器很自然地保护那些不希望被改变的参数,防止其被无意的代码修改,这样可以减少bug的出现。