当前位置: 首页 > news >正文

腾讯云国外服务器山西seo顾问

腾讯云国外服务器,山西seo顾问,微软做网站软件,wordpress有微信主题吗在运行时创建数组优于在编译时创建数组,对于结构(同一个结构可以存储多种类型的数据。)也是如此。需要在程序运行时为结构分配所需的空间,这也可以使用new运算符来完成。通过使用new,可以创建动态结构。同样&#xff0…

在运行时创建数组优于在编译时创建数组,对于结构(同一个结构可以存储多种类型的数据。)也是如此。需要在程序运行时为结构分配所需的空间,这也可以使用new运算符来完成。通过使用new,可以创建动态结构。同样,“动态”意味着内存是在运行时,而不是编译时分配的。由于类与结构非常相似,因此有关结构的技术也适用于类。

将new用于结构分为两步:创建结构和访问其成员。

例如,要创建一个未命名的inflatable类型,并将其地址赋给一个指针,可以这样做:

inflatable *ps = new inflatable;

这将把足以存储inflatable结构的一块可用内存的地址赋给ps。

关于访问成员。创建动态结构时,不能将成员运算符句点用于结构名,因为这种结构没有名称,只是知道它的地址。C++专门为这种情况提供了一个运算符:箭头成员运算符(->),该运算符由连字符和大于号组成,可用于指向结构的指针。例如,如果ps指向一个inflatable结构,则ps->price是被指向的结构的price成员。

如果结构标识符是结构名,则使用句点运算符;如果标识符是指向结构的指针,则使用箭头运算符。

另一种访问结构成员的方法,如果ps是指向结构的指针,则*ps就是被指向的值——结构本身。由于*ps是一个结构,因此(*ps).price是该结构的price成员

//4.21使用new创建一个未命名的结构,并演示了两种访问结构成员的指针表示法
#include<iostream>
using namespace std;struct inflatable
{char name[20];float volume;double price;
};int main()
{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 << " cubic feet\n";cout << "Price: $" << ps->price << endl;delete ps;system("pause");return 0;
}

下面介绍一个使用new和delete来存储通过键盘输入的字符串的示例。程序清单4.22定义了一个函数getname(),该函数返回一个指向输入字符串的指针。该函数将输入读入到一个大型的临时数组中,然后使用new[]创建一个刚好能够存储该输入字符串的内存块,并返回一个指向该内存块的指针。对于读取大量字符串的程序,这种方法可以节省大量内存。

假设程序要读取100个字符串,其中最大的字符串包含79个字符,而大多数字符串都短得多。如果用char数组来存储这些字符串,则需要1000个数组,其中每个数组的长度为80个字符。这总共需要80000个字节,而其中的很多内存没有被使用。另一种方法是,它包含1000个指向char的指针,然后使用new根据每个字符串的需要分配相应数量的内存。是根据输入来分配内存,而不是为每个字符串使用一个大型数组。

//4.22定义了一个函数getname(),该函数返回一个指向输入字符串的指针。
//该函数将输入读入到一个大型的临时数组中,然后使用new[]创建一个刚好能够存储该输入字符串的内存块,并返回一个指向该内存块的指针
#include<iostream>
#include<string.h>
using namespace std;
char *getname(void);//函数原型:指函数的声明部分,包括函数名、参数列表和返回值类型,但不包括函数体。int main()
{char *name;name = getname();//分配字符串地址给name//一般来说,如果给cout提供一个指针,它将打印地址。但如果指针的类型为char*,则cout将显示指向的字符串,如上一行代码。//如果要显示字符串的地址,则必须将这种指针强制转换为另一种指针类型,如int*。如下面的代码。cout << name << " at " << (int *)name << endl;delete [] name;name = getname();//reuse freed memorycout << name << " at " << (int *)name << endl;delete[] name;system("pause");return 0;
}char *getname()//返回指针给新的字符串
{char temp[80];cout << "Enter last name: ";cin >> temp;char *pn = new char[strlen(temp) + 1];strcpy_s(pn,80,temp);//copy string into smaller space return pn;
}

http://www.yidumall.com/news/40866.html

相关文章:

  • 服务器怎样建设网站公司seo是什么级别
  • 物流行业网站建设方案百度客服中心人工在线咨询
  • php网站开发面试题廊坊百度快照优化排名
  • 如何做介绍一门课程的网站seo排名优化软件有
  • 越城网站建设公司网站建设网络推广seo
  • 宁波网站制作哪家全面免费制作logo的网站
  • 建设个定制网站需要多少钱轻松seo优化排名
  • 网站开发全包软文什么意思范例
  • 猪八戒网网站开发需求seo工具是什么意思
  • 一元夺宝网站制作视频软件推广平台有哪些
  • cpa单页网站怎么做人民网 疫情
  • 做外贸怎么登陆国外网站关键词搜索排名工具
  • 网站开发技术规范要求市场调研分析报告怎么写
  • 网站建设教程大全 百度网盘360优化大师旧版本
  • 网站建设与推广的销售链接生成器
  • 旅游做视频网站怎么建立自己的网站
  • 做蔬菜的网站有哪些阿里巴巴logo
  • 做社交网站多少钱建设网站费用
  • wordpress 主题稳定seo入门基础教程
  • 昆明网站建设wlyyb连云港seo
  • 光明网站建设软文街
  • 公安网站备案系统百度关键词指数查询工具
  • 桌面软件开发跟网站开发那个网络营销案例100例
  • 上海广告网站建设百度指数手机版
  • 品牌网站建设毛尖信息流优化师招聘
  • 网站 项目方案关键词歌词表达的意思
  • 厦门建网站的公司网络营销公司有哪些
  • 沈阳市城乡建设局解释seo网站推广
  • 网站页面数量百度联盟怎么加入
  • 一个网站好不好百度排行榜风云榜小说