C++之string面试问题
1、指针变量指向字符串常量的问题
代码如下:
char *p="123456";
问p[0]=2;是否可以?原因?
答案:不可以。“123456”是字符串常量,存储在常量区,其值不可更改。
2.sizeof求字符串长度问题
代码:
int main()
{
char *p="123456";
cout<<sizeof("123456")<<endl;
cout<<sizeof(*p)<<endl;
cout<<sizeof(p)<<endl;
cout<<strlen(p)<<endl;
return 0;
}
win32编译器输出:
7
1
4
6
sizeof(指针变量)测定的是指针的字节数。strlen计算的是有效字符个数。