C 的类型可以分为:

① 对象类型(char、int、数组、指针、结构体等);

② 函数类型;

③ 不完全类型:结构体标记的声明、void*。

不完全类型指“函数之外、类型的大小不能被确定的类型”。

以上的三种类型都可以派生出相应的指针类型。

指针和指针变量的区别c语言(C指针类型和指针相关类型)(1)

C语言的哲学是效率第一,安全第二。

C语言是结构化的汇编语言。

这一切,与指针不无关系。

指针是C语言的灵魂,是效率所在,是灵活性所在,也是问题所在。

指针可以沟通变量之间的关系,可以构造链式存储,可以沟通函数之间的关系,可以统一数据和代码(函数指针),可以模拟泛型(void*指针)。

指针可以申请动态内存, 可以以不同的位模式解释二进制序列(指针类型强制转换)。

数组和函数不能作为函数参数和返回值,但派生出来的函数指针和函数指针可以。

指针还可以衍生或包装出相关类型,智能指针让指针更安全,迭代器可以让数据结构与算法既相互分离又相互作用(迭代器是容器内定义的包装容器元素指针的内部类,各容器的迭代器提供统一接口,独立于容器的算法通常以一对指向容器首尾的迭代器做为参数来操作容器):

指针和指针变量的区别c语言(C指针类型和指针相关类型)(2)

-End-

,