【发布时间】:2022-11-03 23:41:58
【问题描述】:
我正在将字符串指针与其他指针进行比较 但是字符串指针在编写此代码时出错
我尝试使用字符串指针打印元素 但实际上得到错误
int main()
{
string s="abcde";
string *sh=&s;
cout<<sh[2]<<" "<<s[2]<<endl;
}
RESULT -ERROR
【问题讨论】:
我正在将字符串指针与其他指针进行比较 但是字符串指针在编写此代码时出错
我尝试使用字符串指针打印元素 但实际上得到错误
int main()
{
string s="abcde";
string *sh=&s;
cout<<sh[2]<<" "<<s[2]<<endl;
}
RESULT -ERROR
【问题讨论】:
代码中的 sh 变量是字符串的指针,而不是作为字符串内容的字符。它与 s[2] 的含义不同,因为 s 是一个字符串,[] 运算符将访问其第三个元素。 当您访问 sh[2] 时,您正在访问第三个细绳从 sh 表示的“字符串数组”的开头地址作为指针。由于您没有此类数据,因此此访问无效。
【讨论】: