发布日期:2015-12-22 15:31 来源: 标签: 编程语言 C++教程 C++结构体变量 C++指针引用结构
本章我们主要学习C++中如何通过指向结构体变量的指针引用结构体变量中的成员?下面我们就做一下具体讲解,希望大家多多支持中国站长网络学院。
      一个结构体变量的指针就是该变量所占据的内存段的起始地址。可以设一个指针变量,用来指向一个结构体变量,此时该指针变量的值是结构体变量的起始地址。指针变量也可以用来指向结构体数组中的元素。
下面通过一个简单例子来说明指向结构体变量的指针变量的应用。
#include <iostream>#include <string>using namespace std;int main( ){   struct Student//声明结构体类型student   {      int num;      string name;      char sex;      float score;   };   Student stu;//定义Student类型的变量stu   Student *p=&stu;//定义p为指向Student类型数据的指针变量并指向stu   stu.num=10301;//对stu中的成员赋值   stu.name="Wang Fun";//对string变量可以直接赋值   stu.sex='f';   stu.score=89.5;   cout<<stu. num<<" "<<stu.name<<" "<<stu.sex<<" "<<   stu.score<<endl;   cout<<p -> num<<" "<<(*p).name<<" "<<(*p).sex<<" "<<(*p).score<<endl;   return 0;}
程序运行结果如下:
10301 Wang Fun f 89.5 (通过结构体变量名引用成员)
10301 Wang Fun f 89.5 (通过指针引用结构体变量中的成员)
两个cout语句输出的结果是相同的。
为了使用方便和使之直观,C++提供了指向结构体变量的运算符->,例如p->num表示指针p当前指向的结构体变量中的成员num。
    p->num 和(*p).num等价。
同样
    p->name等价于(*p).name。
也就是说,以下3种形式等价:
    结构体变量.成员名。如stu.num。
    (*p).成员名。如(*p).num。
    p->成员名。如p->num。
“->”称为指向运算符。
请分析以下几种运算:
    p->n 得到p指向的结构体变量中的成员n的值。
    p->n++ 得到p指向的结构体变量中的成员n的值,用完该值后使它加1。
    ++p->n 得到p指向的结构体变量中的成员n的值,并使之加1,然后再使用它。

相关评论

专题信息
    C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛。C++支持多种编程范式 --面向对象编程、泛型编程和过程化编程。最新正式标准C++于2014年8月18日公布。 其编程领域众广,常用于系统开发,引擎开发等应用领域,是至今为止最受广大程序员受用的最强大编程语言之一,支持类:类、封装、重载等特性! 本教程从基础讲解了C++语言,希望对大家有所帮助,望多多支持中国站长网络学院。