C语言和C++中的::和->是什么意思?

C语言和C++中的操作符::和->是什么意思?都是用来干什么用的?
希望能说的详细点,并且举两个容易理解的例子
谢谢了

::是作用域操作符,表示你引用的变量限定在该作用域内。
->是箭头操作符,设计它的目的是为了简化输入,以及增强程序的可读性的
->的功能相当于解引用操作符*和成员调用操作符.的组合体

例如:
class C
{
static int a;
}
访问a就可以使用C::a来访问,表明这个变量a具有类C的作用域。它在该类内可见。了解更多,那么namespace就是个很好的例子。

另外。
class C
{
private:
int a;
}
void main()
{
C *p=new C();
//访问a可以使用如下
(*p).a
或者直接
p->a
来访问,是不是更简单明了呢
}
二者的功能是一样的。总结就是,->的功能就是提供了一种对象指针更方便的访问对象成员的方法
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-21
1、“::”类作用域操作符。“::”指明了成员函数所属的类。如:M::f(s)就表示f(s)是类M的成员函数。

2、->和 .实现的功能是一样的,都是访问类的成员变量或成员函数,. 用于普通变量操作,->只能用于指针变量操作。如:若a为一指向对象的指针,a->f(s)就表示调用a所指的对象中的成员函数f(s)。
第2个回答  2009-03-28
::是域操作符,比如using std:: cout;这句意思是使用默认名空间中的cout流,std是默认名空间,它是一个域;->是指向操作符,比如在结构体或者类中用这个结构体或者类的指针指向它的一个成员,比如
class A{
int data;
char key;
}
class *p;
p=&A;
则A.data和p->data等价。
第3个回答  2009-03-28
这个要看具体语境了,::的话一般用在名空间,简单理解::前面是一个姓,->简单理解就是箭头
我举两个例子string::npos,npos是找不到子串函数,前面加个string就是指string类型的找不到子串
又map<int,int>::itreator it=ma.begin();就是指map类型的iterator迭代器。
map容器里面每个元素都有两个值,你想访问第一个那么就it->first;it指向某个元素的第一个值。
当然具体你还要碰到了慢慢积累
第4个回答  2019-06-15
C是计算机编程语言,也称中级语言,可以直接调用系统底层命令和API的语言,使用广泛,功能强大,C++的本质也是C语言,只是在C语言的基础上改良增加而来
相似回答