结构和数组的联系与区别

数组和结构相似的地方是都不再是单一的原子类型,而是一个集合。区别在于数组是相同类型元素(元素可以是原子类型的整型、浮点型、字符型或者结构体数组等)的集合,而结构是不同类型元素(元素可以是原子类型的整型、浮点型、字符型或者结构体、数组等)的集合。所以结构无所不包,当然结构中也可以定义相同类型的元素,而数组则不然,从这个角度,结构体的普世意义更为广泛,但是毫无疑问,如果结构定义为成员类型是相同的,那么相比定义数组,要麻烦的多。

在取地址方面两者也有根本的不同,数组的数组名就代表首地址,依次+1,+2……就可以表示其他元素的地址,不需要使用取地址运算符&;而结构本身只是一系列不同类型元素的集合,本质上只是把很多类型的元素放在一起,以适应具体生产生活中数据单位(例如一个学生的成绩信息、商家的顾客信息等)的存储方式,所以取地址依然需要采用取地址运算。

两者的访问方式也不同,数组可以直接利用下标访问,而结构必须使用结构中成员的变量名。

结构的定义一般放在主函数外面,这样其他函数就可以使用这种类型的结构定义具体的结构;而数组则由于定义和使用都较为简单,可以直接在需要使用的函数中定义即可。

也可参照:数组与结构的区别与联系

猜你喜欢

转载自blog.csdn.net/zhanshen112/article/details/80429861