struct inflatable //结构定义
{
char name[20];
float volume;
double price;
};
int main()
{
using namespace std;
inflatable * ps=new inflatable;//给结构分配内存空间
cout<<"Enter name of inflatable item :";
cin.get(ps->name,20);//第一种方法
cout<<"Enter volume in cubic feet :";
cin>>(*ps).volume;//第二种方法
cout<<"Enter price : $";
cin>>ps->price;
cout<<"Name: "<<(*ps).name<<endl;
cout<<"volume: "<<ps->volume<<endl;
cout<<"price: "<<ps->price<<endl;
delete ps; //释放指针内存空间
return 0;
}
using namespace std;
char * getname(void);
//这段代码中new和delete分别在不同的代码段中是很不可取的
int main()
{
char * name;//创建指针
name=getname();
cout<<name<<" at "<<(int*)name<<"\n";
delete [] name;
name=getname();
cout<<name<<" at "<<(int*)name<<"\n";
delete [] name; //再次清空
return 0;
}
char * getname()
{
char temp[80];
cout<<"Enter last name: "<<endl;
cin>>temp;
char * pn=new char[strlen(temp+1)];
strcpy(pn,temp);
return pn;
}
//自动存储一般是用于局部变量 存储在栈中 后进先出 LIFO
//静态存储 一般用于全局变量
//动态存储用于new的变量 存储在堆或者自由存储空间中
struct antarctica_years_end
{
int year;
};
int main()
{
using namespace std;
antarctica_years_end s01,s02,s03;
s01.year=1998;
antarctica_years_end * pa= &s02;
pa->year=1999;
antarctica_years_end trio[3];
trio[0].year=2003;
cout<<trio->year<<endl;
const antarctica_years_end * arp[3]={&s01,&s02,&s03};
cout<<arp[1]->year<<endl;
const antarctica_years_end ** ppa=arp;
auto ppb=arp;
cout<<(*ppa)->year<<endl;
cout<<(*(ppb+1))->year<<endl;
return 0;
}
//结果 2003 1999 1998 1999 这个例子仅仅停留在能看懂的水平 过段时间需要重新温习