->-是C语言和C++语言的一个运算符,叫做指向结构体成员运算符,用处是使用一个指向结构体或对象的指针访问其内成员 。 基本介绍中文名:指向结构。->。" />

->


->

文章插图
" alt="->" class="card_imgimg">->->是C语言和C++语言的一个运算符,叫做指向结构体成员运算符,用处是使用一个指向结构体或对象的指针访问其内成员 。
基本介绍中文名:指向结构体成员运算符
外文名:Point to the structure member operator
符号:->
意义:指向结构体成员运算符
用法:指针->成员名字
简介->运算符叫做“指向结构体成员运算符”,是C语言和C++语言的一个运算符 。一个指针当用来指向一个结构体、对象时,称之为结构体指针或对象指针 。结构体指针或对象指针中的值是所指向的结构体或对象的首地址 。通过结构体指针或对象指针即可访问该结构体或对象 。这需要用到结构体关键字struct和C++类关键字class 。结构体指针和对象指针定义的形式:struct 结构体类型名 *指针名;//结构体指针struct 结构体类型名 *指针名 = &一个结构体的名字;//结构体指针并赋初值struct 结构体类型名 *指针名 = new struct 结构体类型名;//结构体指针并用new申请记忆体struct 结构体类型名 *指针名 =(struct 结构体类型名 *)malloc(sizeof(struct 结构体类型名))//结构体指针并用malloc申请记忆体 使用应包含头档案stdlib.h//对象指针的定义方法略同 。优先权:1用法实例1.【->】#include <iostream>#include <string>using namespace std;class C{public:    int num;    string name;};int main(void){    C obj;    C *p = &obj;    p->num = 5;    p->name = "Tony";    cout << p->num << p->name << endl;    return 0;}程式输出:5Tony2.#include <iostream>#include <string>using namespace std;class C{public:    int num;    string name;};void changevalue(C *t,int num,string name){    t->num=num;    t->name=name;}int main(void){    C obj;    changevalue(&obj,5,"Tony");    cout << obj.num << obj.name << endl;    return 0;}程式输出:5Tony不过在定义全局函式的时候最好传入引用而不是指针,这样在调用对象时和定义函式不会出错 。重载->的重载比较特殊 。#include<iostream>using namespace std;struct stu{    char name[10000];    int number;    int classnumber;    int gradenumber;};class stuPoint_t{stu *p;public:    stuPoint_t(){p=NULL;}    stuPoint_t(stu *a){p=a;}    stuPoint_t(stuPoint_t a){p=a.p;}     stuPoint_t &operator=(stuPoint_t a){p=a.p;return *this;}    stuPoint_t &operator=(stu *a){p=a;return *this;}    stu &operator*(){return *p;}    stu *operator->(){return p;}};int main(){    stu student;    stuPoint_t p;    p=&student;//p.operator=(&student);    p->name="xiaoming";//p.operator->()->name="xiaoming";    p->number=7;    p->classnumber=6;    p->gradenumber=6;    cout<<student.name<<" "<<student.number<<" "<<student.classnumber;    cout<<" "<<student.gradenumber<<endl;    stu student2={"xiaogang",13,6,5};    *p=student2;//p.operator*()=student2;    cout<<student.name;    return 0;}/*输出:xiaoming 7 6 6xiaogang*/