首页 > 代码库 > const与指针
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 两者都不可以改变
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。