您的位置:首页 > 编程语言 > C语言/C++

C/C++中关于地址、指针和引用变量的学习笔记(三) : 结构

2010-07-21 10:34 761 查看
上一篇讲述了关于指针和数组的关系,这次准备讲一下指向结构的指针的一些用法:

指向结构的指针(即结构指针)的用法和其他指针一样。它指向某种结构类型的一个实例,可以进行加减等算术运算。

不过,这时加上或减去的是结构的大小(结构中所有成员大小的总和)的整数倍。

通过结构指针访问结构成员需要使用成员指针运算符(->)。

示例如下:

#include <iostream>

// Employee record.
struct Employee
{
int emplno;
float wage;
};

// Array of Employee records.
Employee emps[] =
{
{ 1, 10.17 },  // #1 initialized
{ 2, 15.50 },  // #2 initialized
{ 3, 13.00 },  // #3 initialized
{-1, 0     }   // Terminal element
};

////////////////////////////////////////
// The main() function.
////////////////////////////////////////
int main()
{
// Initialize a pointer with the address of
// the employee-records array.
Employee* ep = emps;

// Display the employee records.
while (ep->emplno != -1)
{
std::cout << ep->emplno << ' '
<< ep->wage << std::endl;
ep++;
}

return 0;
}


运行结果如下:



请注意cout语句是如何引用两个结构成员的。这里没有采用点号(.)结构成员运算符,取而代之的是成员指针运算符(->)。

这两个运算符的区别是:

前者通过结构直接访问结构成员,后者通过指向结构的指针间接访问结构成员。

另外,需要特别注意的是:

数组以-1最为结束的标志,因此,while循环可以判定指针ep是否已经指到数组的末尾。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐