指针与字符串操作的一些常见错误

 

指针与字符串操作的一些常见错误
 
1.      长度问题,字符串长度是 strlen()+1;
strlen 是不包含 null 字符长度的,主要是用于字符串运算时不方便
 
2.      字符串直接量
必须使用 strcpy 等函数将字符串直接量赋给指针,否则不能修改只能的内容。当然逐个字符的赋值也可以。
cout<<”hello”
这个 ”hello” 就是字符串直接量,他们的具体内存空间是位于内存的只读部分。因此如果将指针的值给指向他们,将不能修改指针的内容。
如下:
#include
#include
using namespace std;
int main(void)
{
     char *p = new char[5];
     p = "hell";
     //strcpy(p, "hello");
     p[0]='a';              //错误,不能修改,
     cout<
     char *p2 = "hello";
     p2[0]='a';             //错误,不能修改
     cout << p2 << endl;
     return 1;
}
 

你可能感兴趣的:(C++)