C++写函数时参数为指针或引用类型时应给指针或引用加const

如果函数参数是指针,且仅作输入用,则必须在类型前面加上const,以用来防止该指针在函数体内被意外修改。

举个例子:

void print(char *str)

{

printf("%s\n", str);

}

const char *str = "hello world";

print(str);

上面的代码会报错

当参数是char *时不能接受const char *类型的参数,只能接受char数组或动态分配的数组。而当参数类型是const char *时,可以接受char *、const char *;也就是提高了代码的参数的可接受范围。

同理引用也是如此,但const引用比const指针更为强大,初始化的过程中可以采用任意的对象,const对象,非const对象,甚至其他类型的数据。const引用支持隐式类型转换。而指向const的指针则不能,只能指向同一类型的数据,但是可以采用强制类型转换,初始化或者赋值过程中对数据类型没有要求,可以是const对象的地址,也可以是非const对象的地址。

const引用和指向const对象的指针都是使自己指向的对象不能修改,采用const的指针或者引用就能避免原始数据修改。

That's all.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy阅读 9,545评论 1 51
  • iOS面试小贴士 ———————————————回答好下面的足够了------------------------...
    不言不爱阅读 2,023评论 0 7
  • ———————————————回答好下面的足够了---------------------------------...
    恒爱DE问候阅读 1,767评论 0 4
  • 0000000
    l因l为l年l轻l阅读 196评论 0 0
  • 如今的手机操作系统已经到了8.0,早在6.0的时候就有了权限的动态申请,危险的权限在使用到的时候动态申请。...
    porten阅读 1,019评论 0 0