例7.3 指向结构体 变量的指针的应用。 #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; cot<<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,然后再使用它。

评论