我正在将一个字符串常量从main传递给一个函数,我的问题是,为什么当我在函数参数中放入一个字符数组(cstring)时会出现错误,但当我放入常量字符指针时,它可以正常工作,数组不是常量指针吗??这是函数(它实际上是我的字符串类的参数化构造函数)
String ( const char * str )
{
size = strlen(str);
arr = new char [size] // arr and size are my data members
for ( int i = 0 ; i<size ; i++)
arr[i] = str[i];
}
- 除非指针被明确定义为常量(
const
),否则指向数组的指针不是常量,而只是一个常规指针,因此可以修改 - 上面的代码有缺陷,因为arr应该是len[size+1],以节省终止零(字符串字符的末尾)的空间