加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – C中的指针算术和const限定符

发布时间:2020-12-16 10:42:58 所属栏目:百科 来源:网络整理
导读:在下面的一段代码中,计算strlen, int s(const char* str){ int count=0; while(*str++) count++; return count;} 你可以看到参数str是const.但是,当我执行str时,编译器不会抱怨.我的问题是 当将指针作为参数传递给C函数时,如果是用const限定的,我怎么还能对
在下面的一段代码中,计算strlen,

int s(const char* str)
{   
    int count=0;        
    while(*str++) count++;
    return count;
}

你可以看到参数str是const.但是,当我执行str时,编译器不会抱怨.我的问题是

当将指针作为参数传递给C函数时,如果是用const限定的,我怎么还能对它执行指针算术?上述函数中的const是什么?

解决方法

const char* str;

表示指向const数据的非const指针.

char* const str;

表示指向非const数据的const指针.

const char* const str;

表示指向const数据的const指针.

这样做的原因是在C中,变量类型声明从右到左进行解析,这导致单词“const”始终定义它最接近的事物的常量.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读