C++ 结构体

2018-03-24 11:38 更新

学习C++ - C++结构体

这是一个满足这些需求的结构体描述:

struct Product   // structure declaration 
{ 
     char name[20]; 
     float volume; 
     double price; 
}; 

关键字struct表示代码定义了一个结构体的布局。

标识符Product是此表单的名称或标签。

这使Product为新类型的名称。


#include <iostream> 
struct Product   // structure declaration 
{ 
    char name[20]; 
    float volume; 
    double price; 
}; 

int main() 
{ 
    using namespace std; 
    Product guest = 
    { 
         "C++",  // name value 
         1.8,               // volume value 
         29.9               // price value 
    };  
    Product pal = 
    { 
         "Java", 
         3.1, 
         32.9 
    };  // pal is a second variable of type Product 
    cout << "Expand your guest list with " << guest.name; 
    cout << " and " << pal.name << "!\n"; 
    cout << "You can have both for $"; 
    cout << guest.price + pal.price << "!\n"; 
    return 0; 
} 

上面的代码生成以下结果。


例子

以下代码显示了如何分配结构体。


#include <iostream> 
using namespace std; 
struct Product 
{ 
     char name[20]; 
     float volume; 
     double price; 
}; 
int main() 
{ 
     
     Product bouquet = { "C++", 0.20, 12.49 }; 
     Product choice; 
     cout << "bouquet: " << bouquet.name << " for $"; 
     cout << bouquet.price << endl; 

     choice = bouquet;  // assign one structure to another 
     cout << "choice: " << choice.name << " for $"; 
     cout << choice.price << endl; 
     return 0; 
} 

上面的代码生成以下结果。


结构体数组

可以创建其元素是结构体的数组。

例如,要创建一个100个产品结构体的数组,您可以执行以下操作:

Product gifts[100];  // array of 100 Product structures 
cin >> gifts[0].volume;          // use volume member of first struct 
cout << gifts[99].price << endl; // display price member of last struct 

要初始化一个结构体数组,您将将数组初始化的规则与结构体规则相结合。

因为数组的每个元素都是一个结构体,它的值由结构体初始化表示。

Product guests[2] =              // initializing an array of structs 
     { 
          {"A", 0.5, 21.99},      // first structure in array 
          {"B", 2000, 565.99}  // next structure in array 
}; 

以下代码显示了一个使用结构体数组的简短示例。


#include <iostream> 
using namespace std; 
struct Product
{ 
     char name[20]; 
     float volume; 
     double price; 
}; 
int main() 
{ 
    Product guests[2] =          // initializing an array of structs 
    { 
         {"A", 0.5, 21.99},      // first structure in array 
         {"B", 2,   5.99}  // next structure in array 
    }; 

    cout << "The guests " << guests[0].name << " and " << guests[1].name 
          << "\nhave a combined volume of " 
          << guests[0].volume + guests[1].volume << " cubic feet.\n"; 
    return 0; 
} 

上面的代码生成以下结果。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号