标签:学生 不完全 size linu 大小 c语言 people img 就是
结构体隆重登场
结构体发明出来就是为了解决数组的第1个缺陷,数组中所有元素类型必须相同
我们要管理3个学生的年龄(int类型),怎么办?
第一种解法,用数组 int ages[3];
第二种解法,用结构体
struct ages
{
int agel;
int age2;
int age3;
};
struct ages age;
分析总结:在这个示例中,数组要比结构体好。但是不能得出结论说数组就比结构体好,在包中元素类型不同时就只能用结构体而不能用数组了
struct people
{
int age; //人的年龄
char name [20] ; //人的姓名
height; //人的身高
};
因为people的各个元素类型不完全相同,所以必须用结构体,没法用数组。
结构体内嵌指针实现面向对象面向过程与面向对象
总的来说:c语言是面向过程的,但是c语言写出的linux系统是面向对象的。
非面向对象的语言,不一定不能实现面向对象的代码。只是说用面向对象的语言来实现面向对象要更加简单一些直观一些、无脑一些。
用C++、Java等 面向对象的语言来实现面向对象简单一些,因为语言本身帮我们做了很多事情,但是用c来实现面向对象很麻烦,看起来也不容易理解,这就是为什么大多数人学过c语言却看不懂linux内核代码的原因。
struct 3
{
int age; //普通变量
void (*pFunc) (void); //函数指针,指向void func (void)这类的函数
}
使用这样的结构体就可以实现面向对象。
这样包含了函数指针的结构体就类似于面向对象中的class,结构体中的变量类似于class中的成员变量,结构体中的函数指针类似于class中的成员方法。
标签:学生 不完全 size linu 大小 c语言 people img 就是
原文地址:https://www.cnblogs.com/sanshijvshi/p/10264539.html