【发布时间】:2011-04-12 22:00:44
【问题描述】:
在下面的代码中,我在 change() 函数中使用了指向 c++ 字符串的指针。
在使用指向字符串的指针时,是否可以使用字符串类的运算符?例如,at() 适用于 [] 运算符,但是有什么方法可以使用 [] 运算符吗?
#include <string>
#include <iostream>
using namespace std;
void change(string * s){
s->at(0) = 't';
s->at(1) = 'w';
// s->[2] = 'o'; does not work
// *s[2] = 'o'; does not work
}
int main(int argc,char ** argv){
string s1 = "one";
change(&s1);
cout << s1 << endl;
return 0;
}
【问题讨论】:
-
*s[2]接近但不够接近。你的意思是写(*s)[2]。后缀运算符的绑定总是比前缀运算符强,因此您必须在*s周围使用括号。