C++中在程序中使用结构的详情

C++中在程序中使用结构的详情

介绍结构的主要特征后,下面在一个使用结构的程序中使用这些概念。程序清单4.11说明了有关结构的这些问题,还演示了如何初始化结构。

// structur.cpp -- a simple structure
#include <iostream>
struct inflatable   // structure declaration
{
    char name[20];
    float volume;
    double price;
};

int main()
{
    using namespace std;
    inflatable guest =
    {
        "Glorious Gloria",  // name value
        1.88,               // volume value
        29.99               // price value
    };  // guest is a structure variable of type inflatable
// It's initialized to the indicated values
    inflatable pal =
    {
        "Audacious Arthur",
        3.12,
        32.99
    };  // pal is a second variable of type inflatable
// NOTE: some implementations require using
// static inflatable guest =

    cout << "Expand your guest list with " << guest.name;
    cout << " and " << pal.name << "!\n";
// pal.name is the name member of the pal variable
    cout << "You can have both for $";
    cout << guest.price + pal.price << "!\n";
    // cin.get();
    return 0; 
}

下面是该程序的输出:

Expand your guest list with Glorious Gloria and Audacious Arthur!
You can have both for $62.98 !

程序说明
结构声明的位置很重要。对于structur.cpp而言,有两种选择。可以将声明放在main()函数中,紧跟在开始括号的后面。另一种选择是将声明放到main()的前面,这里采用的便是这种方式,位于函数外面的声明被称为外部声明。对于这个程序来说,两种选择之间没有实际区别。但是对于那些包含两个或更多函数的程序来说,差别很大。外部声明可以被其后面的任何函数使用,而内部声明只能被该声明所属的函数使用。通常应使用外部声明,这样所有函数都可以使用这种类型的结构(参见图4.7)。

变量也可以在函数内部和外部定义,外部变量由所有的函数共享(这将在第9章做更详细的介绍)。C++不提倡使用外部变量,但提倡使用外部结构声明。另外,在外部声明符号常量通常更合理。接下来,请注意初始化方式:

inflatable quest=
{
"Glorious Gloria"//name value
1.88,
//volume value
// price value
29.99
}

和数组一样,使用由逗号分隔值列表,并将这些值用花括号括起。在该程序中,每个值占一行,但也

可以将它们全部放在同一行中。只是应用逗号将它们分开:
inflatable duck=“Daphne”,0.12,9.98};
可以将结构的每个成员都初始化为适当类型的数据。例如,name 成员是一个字符数组,因此可以将其初始化为一个字符串。
可将每个结构成员看作是相应类型的变量。因此,pal.price 是一个 double 变量,而 pal.name 是一个 char数组。当程序使用cout 显示pal.name 时,将把该成员显示为字符串。另外,由于 pal.name 是一个字符数组,因此可以用下标来访问其中的各个字符。例如,pal.name[0]是字符 A。不过 pal[0]没有意义,因为 pal 是-个结构,而不是数组。

对C++感兴趣的朋友点这里:C/C++课程

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值