用结构创建结构化数据类型
如果需要把一批数据打包成一样东西,就可以使用结构(struct)。struct
是structured data type(结构化数据类型)的缩写。有了结构,就可以像下面这样把不同类型的数据写在一起,封装成一个新的大数据类型:
struct fish {
const char *name;
const char *species;
int teeth;
int age;
};
这段代码会创建一个新的自定义数据类型,它由一批其他数据组成。事实上,结构与数组有些相似,除了以下两点:
结构的大小固定。
结构中的数据都有名字。
定义新结构以后,如何用它来创建数据?和新建数组很像,你只需要保证每条数据按照它们在结构中定义的顺序出现即可:
这里没有蠢问题
问:喂,等等,什么是
const char *
来着?答:
const char *
用来保存你不想修改的字符串,也就是字符串字面值。问:fish结构会保存字符串吗?
答:在这个例子中不会,这里的fish结构中只保存了字符串指针,也就是字符串的地址,字符串保存在存储器中其他位置。
问:但还是可以把整个字符串保存在结构中吧?
答:对,只要把字符串定义成字符数组就行了,像
char name[20];
。