美文网首页
三.复合类型

三.复合类型

作者: Kevin_0417 | 来源:发表于2017-07-31 09:30 被阅读0次

C++中的复合类型主要有三种:数组,指针,和结构

数组的索引是从0开始的,所以months[0]是指的数组months的第一个元素。最后一个元素的索引比数组的长度小1。

初始化数组的时候,提供的值可以少于数组的元素数目。如果只对数组的一部分进行初始化,则编译器把其他元素设置为0。

sizeof运算符指出整个数组的的长度。而strlen()函数返回的是存储在数组中的字符串的长度,而不是数组本身的长度。strlen()只计算可见的字符,并不把空字符计算在内。

getline()函数读取整行,它使用通过回车键输入的换行符来确定输入结尾。例如,假设要使用getline() 将姓名读入到一个包含20个元素的name数组中,可以使用这样的调用:cin.getline(name, 20);。

要使用string类,必须在程序中包含头文件string。string类位于名称空间std中,因为必须using namespace std或者std::string。

string对象可以用+将两个字符串合并起来。

结构是一种比数组更加灵活的数据格式,因为同一个结构可以存储多种类型的数据。首先,定义结构描述,它描述并标记了能够存储在结构中的各种数据类型。然后,按照描述创建结构变量。比如:

struct inflatable

{

char name[20];

float volume;

double price;

}

关键字struct表明这是一个结构,inflatable是结构的名称。大括号中存储的是结构存储的数据类型的列表,其中每个列表项都是一条生命语句,每一项都被称为结构成员。

在默认情况下,将整数值赋给枚举量。第一个枚举的值为0,第二个为1,以此类推。

可以使用赋值运算显式的设置枚举量的值:enum bits{one=1, two=2, four=4, eight=8}。指定的值必须是整数。又比如: enum bigstep{first, second=100, third}。这里,first默认为0,后面没有被初始化的枚举量的值将比其前面的枚举量大1,因此third的值为101。

指针是一个变量,其存储的是值的地址,而不是值本身。

在找寻常规变量的地址时,只需要对变量应用地址寻址符&,就可以获得它的位置。如果home是一个变量,&home就是它的地址。

*称为间接值或解除引用运算符,将其应用于指针,可以获得该地址处所存储的值。例如,manly是一个指针,则manly表示的是一个地址,而*manly表示的是存储在该地址处的值。*manly与常规int变量等效。

对每个指针命名,都必须使用一个*。例如:int * p1,p2.这里p1是指针,而p2是一个int的变量。所以应该这样命名:int*p1,*p2.

在声明语句中初始化指针。在这种情况下,初始化的是指针,而不是它指向的值。比如:int higgens=5; int * p1=&higgens; 这个例子里面是将&higgens的值给了p1,而不是*p1.

在C++中,创建动态数组很容易,只要将数组的元素类型和元素数目告诉new即可。必须在类型后面加上【】,其中包含元素的数目。例如,要创建一个包含10个int元素的数组,可以这样做:int* psome=new int[10]; new运算符返回第一个元素的地址,该地址被赋给指针psome。

为数组分配内存的通用格式如下: typename* pointername=new typename[n]。

如果给cout提供一个指针,它将打印指针的地址。但是如果指针的类型是char*,则cout将打印指针指向的字符串。

相关文章

  • 三.复合类型

    C++中的复合类型主要有三种:数组,指针,和结构。 数组的索引是从0开始的,所以months[0]是指的数组mon...

  • PHP数据类型

    数据类型 数据类型分为三种:标量型、复合型、特殊类型标量型: 复合型 特殊类型 数据类型检测 PHP中变量的数据类...

  • Hive函数

    Hive函数 内置函数 一、关系运算: 二、数学运算: 三、逻辑运算: 四、复合类型构造函数 五、复合类型操作符 ...

  • 复合类型

    引用 引用(reference)为对象起了另外一个名字,引用类型应用(refers to)另外一种类型。通过将声明...

  • C++复合类型之引用和指针

    1. 什么是复合类型 复合类型(compound type)是指基于其它类型定义的类型(eg: 引用和指针)。 2...

  • Go复合数据类型

    复合数据类型:是以不同的方式组合基本类型可以构造出来的复合数据类型,在Golang中复合数据类型有数组、slice...

  • C语言基础 之 复合数据类型和类型定义

    复合类型是一种自定义类型,用于扩展基本数据类型。复合数据类型包括:结构类型、共用体类型和枚举类型。 用 typed...

  • C++与python差异(一)

    内置数据类型(1)c++的内置类型包括基本类型和复合类型,基本类型有算术类型和空类型两种,复合类型是基于基本类型定...

  • Clickhouse原理与应用实践(二)数据定义与数据字典

    1、数据类型 1.1基础类型 只有数值、字符串和时间三种类型 1.2 复合类型 Nested 嵌套类型,每个字段都...

  • 如何实现 a == c, b == c成立,a == b 不成立

    在JavaScript中,利用 复合数据类型的拆箱,使两个不同的复合数据类型拆箱得到的值相同。 原理:复合数据类型...

网友评论

      本文标题:三.复合类型

      本文链接:https://www.haomeiwen.com/subject/qupmcxtx.html