const char * ptr 与 char ptr []
const char * ptr vs char ptr []
我正在将一个字符串常量从 main 传递给一个函数,我的问题是为什么当我在函数参数中放置一个字符数组 (cstring) 时出现错误,但是当我放置常量字符指针时它工作正常,数组不是常量指针吗??
这是函数(它实际上是我的字符串 class 的参数化构造函数)
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] 以保存 space 用于终止零(字符串字符的结尾)
我正在将一个字符串常量从 main 传递给一个函数,我的问题是为什么当我在函数参数中放置一个字符数组 (cstring) 时出现错误,但是当我放置常量字符指针时它工作正常,数组不是常量指针吗?? 这是函数(它实际上是我的字符串 class 的参数化构造函数)
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] 以保存 space 用于终止零(字符串字符的结尾)