C++中 .* 运算符

2024-10-30 12:18:37
推荐回答(4个)
回答1:

楼上的都错了,楼主说的是成员指针运算符.*,而不是*
成员指针运算符在指针运算符的基础上限定了变量的适用范围是类或结构体的成员变量或成员函数指针
下面有段代码就使用了成员指针运算符:
#include
class claA{
public:
double data;
claA(double x){
data=x;
}
double fx(double x){return data*data-x;}
};
void main()
{
claA obj(12.3),*p=&obj;
double claA::*ip;
ip=&claA::data;
cout<<"obj.*ip="<cout<cout<*ip<cout<data<double (claA::*fp)(double);
fp=claA::fx;
cout<<(obj.*fp)(36.9)<cout<cout<<(p->*fp)(5.5)<cout<<(p->fx)(5.5)<}

回答2:

#include
int main(void)
{
int a(2),*p=&a;//&a是取a的地址,int*是整形的指针,也就是整形数的地址
cout<<"a="<cout<<"Adress of a is "<cout<<"p points to "<<(*p)<system("pause");
return 0;
}

回答3:

我想问一下楼上的大哥,你的P 和*P不会冲突吗?事先并没有定义P是什么
cout<<"Adress of a is "<int a(2),*p 这句说明 a是整型 指针式*p
我是初学者 请勿见怪

回答4:

这个你说的是指针吧 !