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”始终定义它最接近的事物的常量. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |