通常,字符串操作函数原型中,都会在形参前面加上const修饰符,表示此指针不能用于修改字符串的值
比如:char *strcpy(char *strDest, const char *strSrc)
但是可不可以通过 在函数里定义一个指针指向strSrc,来改掉字符串的值呢?
给出以下代码:
#include <STDIO.H> #include<stdlib.h> void fuc(const char *p) { char *q = p; *q='b'; } int main() { char p[]="abcd"; fuc(p); puts(p); system("pause"); return 0; }
vc6.0下:
结果显示可以
换成vs2013:
报出以下错误。
但是,使用强制类型转化后:
结果:
说明,函数参数里添加const修饰指针,并不说明此函数就不能修改 指针指向的内容,只是说明 函数不能通过被const修饰的指针改变指向的内容。
时间: 2024-12-13 01:20:50