关于网友提出的“ const 修饰的地址为何可改变??”问题疑问,本网通过在网上对“ const 修饰的地址为何可改变??”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: const 修饰的地址为何可改变??
描述: #include
#include
#include
char *strcpy(char *strDest, const char *strSrc)
{
assert((strDest!=NULL) && (strSrc!=NULL));
char *address = strDest;
while((*strDest++ = *strSrc++) != '\0'){}
return address;
}
int main()
{
char *src="this is a test!";
char dest[10];
strcpy(dest, src);
printf("the copy result is :\n%s\n", dest);
return 0;
}
为什么这里的const修饰的地址可以改变?谢谢大侠们...
解决方案1: 1 const char *strSrc; 指向常量的指针 这个是地址可以改变 但是指向值不能改变
2 char const *strSrc;
3 char *const strSrc; 常指针 这个是地址不可以改变 但是指向的值可以改变
1 2相同
解决方案2: 以星号为分割线,星号前与类型在一起定义变量类型,星号后与变量名一起,修饰变量值
解决方案3: 你好像是理解错误,用const修饰的是地址的值,换句话说让调用函数的人知道第二参数指针指向的值不能改变.
解决方案4: const char *strSrc;
char const *strSrc;
这两者是等同的
char *const strSrc;才不一样
以上介绍了“ const 修饰的地址为何可改变??”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2922882.html