关于strcpy()函数
可是我使用下述代码
C/C++ code
char *str1="ssss"; char *str2="11"; strcpy(str1,str2); cout<<str1;
系统显示该内存不能为written!
但是我使用如下代码
C/C++ code
char str1[]="ssss"; char *str2="11"; strcpy(str1,str2); cout<<str1;
就可以正常显示,请问这是为什么?
还有一事儿小弟始终想不明白,“ssss”这种字面值字符串,它的类型不是const char*类型吗?为什么可以赋给char*类型的指针?
作者: cstringfengle 发布时间: 2011-06-15
char *str2="11";
strcpy(str1,str2); //str1存在常量存储区,内存不可读
cout<<str1;
========
char str1[]="ssss";
char *str2="11";
strcpy(str1,str2); //str1定义在栈内存,可以读写。还可以使用malloc申请str1内存。也可以修改,
cout<<str1;
作者: dizuo 发布时间: 2011-06-15
相当于
const char * const str1
也就是说="ssss";在常量区
如果是数组的话,其值只是在常量区的一个拷贝,确切说是在栈上
作者: namelij 发布时间: 2011-06-15
char *str1="ssss";//"ssss"是存储在栈区的
str1被强制转换为 const char*了
作者: hnuqinhuan 发布时间: 2011-06-15
char *str1="ssss";
char *str2="11";
strcpy(str1,str2); //str1存在常量存储区,内存不可读
cout<<str1;
========
char str1[]="ssss";
char *str2="11";
strcpy(str1,str2); //str1定义在栈内存,可以……
作者: cstringfengle 发布时间: 2011-06-15
存在一个隐式转换
char *str1="ssss";//"ssss"是存储在栈区的
str1被强制转换为 const char*了
作者: cstringfengle 发布时间: 2011-06-15
char *str1="ssss";
相当于
const char * const str1
也就是说="ssss";在常量区
如果是数组的话,其值只是在常量区的一个拷贝,确切说是在栈上
作者: cstringfengle 发布时间: 2011-06-15
作者: self001 发布时间: 2011-06-15
http://blog.csdn.net/yfkiss/archive/2011/06/14/6542894.aspx
作者: yfkiss 发布时间: 2011-06-15
作者: antion692980794 发布时间: 2011-06-15
c++内存,LZ要复习一下le
http://blog.csdn.net/yfkiss/archive/2011/06/14/6542894.aspx
作者: cstringfengle 发布时间: 2011-06-15