您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> C/C++ >> const 修饰的地址为何可改变??

const 修饰的地址为何可改变??

来源:网络整理     时间:2016/7/25 22:38:06     关键词:

关于网友提出的“ 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

相关图片

相关文章