c++primer plus复合类型之指针2

使用new创建动态结构

在运行时创建数组优于在编译时创建数组,对于结构亦如此。可以在程序运行时为结构分配所需要的空间,通过使用new运算符实现。

创建步骤分两步进行:

1:创建动态结构:需要同时使用结构类型和new运算符。例如,创建一个未命名的inflatable类型,将其赋值给指针,

inflatable* pt = new inflatable ;



这种句法和c++内置类型用法相同。

2:访问成员变量:有两种方法访问成员变量,

①创建动态结构时,不能使用成员运算符来访问,因为此时结构没有名称,只是知道它的地址而已。c++为这种情况提供了专门的运算符:箭头运算符(->)。该运算符由连字符和大于号组成,可用于指向结构的指针来访问成员变量,例如,pt->price是被指向结构的price成员

②另一种访问成员变量的方法是,(*pt).price方式,*pt是被指针指向的值--结构的本身,由于*pt是一个结构,因此,(*pt).price是该结构的price成员。

下面是创建动态结构和访问成员变量的示例:

#include <iostream>
using namespace std;
struct  inflatable
{
	char name[20];
	float volume;
	double price;
};
int main()
{
	inflatable* pt=new inflatable;//创建动态结构
	cout<<"enter name of inflatable:"<<endl;
	cin.getline(pt->name,20);
	cout<<"enter volume of inflatable:"<<endl;
	cin>>(*pt).volume;
	cout<<"enter price of inflatable:"<<endl;
	cin>>(*pt).price;

	return 0;
} 
输出:

enter name of inflatable:

fh

enter volume of inflatable:

1.4

enter price of inflatable:
27.99




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值