想知道更多区块链技术知识,请百度【链客区块链技术问答社区】
链客,有问必答!!
一.结构
- 结构类型定义
struct <结构类型名> {<成员表>};
typedef struct <结构类型名> {<成员表>}<结构体类型别名>;
1)名字可以跟结构名不一样,不过都是一样的,设置别名知识方便定义变量,保留语法。
2)在结构类型定义时,对成员变量进行初始化是没有意义的,因为类型不是程序运行时刻的实体,它们不占用内存空间。 - 结构类型变量定义
struct <结构类型名> <变量名表>;//C的用法
或 <结构类型名> <变量名表>;// C++的用法
或 struct <结构类型名> {<成员表>}<变量名表>; - 操作
1)访问成员:<结构类型的变量名>.<成员名>
2)对结构类型的数据可以进行整体赋值,但是要保证两者属于相同的结构(成员名和类型都相同)。 - 结构类型的默认参数传递方式是值传递,因此,当结构类型很大时传输速度回受限。
- 定义完结构类型后,其使用和平时的类型没有太大的区别,该加加该减减,不过要记住其每个成员也是一个实体。
枚举 - 枚举类型定义
enum <枚举类型名> {<枚举值表>}; - 枚举变量的定义
<枚举类型> <变量表>;
或<枚举类型>{<枚举值表>} <变量表>; - 枚举变量的使用
1)赋值1
Day d1,d2;
d1 = SUN; //true
d2 = 3; //error, 但int n = SUN;也是可以的
d2 = (Day)3;//true 但这样不安全,必须要保证该整型数属于枚举类型的值集,否则没有意义
2)算术运算
d2 = d1 + 1;//error,因为它d1 + 1的结果是整型
d2 = (Day)(d1 + 1);//true
数组 - 二维数组
1)初始化
int a[2][3] = {{1,2,3},{4,5,6}}; 等同于 int a[2][3] = {1,2,3,4,5,6};//二维数组可以转成一维数组进行处理,但是要注意下标
int a[][3] = {{1,2},{3,4,5}};//第一个下标可以省略,其他的不能,更高维的数组也同此。 - 一维数组
1)定义
<元素类型> <一维数组变量名>[<元素个数>];
也可以借助 typedef 类定义
typedef <元素类型> <一维数组类型名>[<元素个数>]; <一维数组类型名> <一维数组变量名>
2)操作
通过下标访问元素。
注意下标是否越界。
初始化
int a[10] = {1,2,3};//其他元素初始化为0
int a[] = {1,2,3};//元素个数为3
未经允许,拒绝转载。