对个帖子的总结:严重声明:C语言中不存在数组的类型!它仅仅是一个概念!

来源:互联网 发布:java 混淆加密 编辑:程序博客网 时间:2024/05/17 06:17

http://bbs3.chinaunix.net/viewthread.php?tid=1631299这篇文章讲到了C语言指针的理解,楼主虽然理解了指针,但是说话有点偏激,观点不完全正确。

C语言中不仅不存在数组类型,也不存在char, short, int, long, float, double等等这些类型,非要说C存在一种类型,那也可以说只有一种类型:内存段。何为内存段?就是一块内存,暂时称为raw_piece.
为什么说C是一种无类型或者弱类型的语言?因为我们的计算机对待内存就是无类型的。
高级语言中的类型,可以在运行时取得该类型对象的属性,比如长度、元素个数等等,因为这些属性保存在了对象本身内部。
在C中,我们可以用struct来构造类似高级语言的这种数据类型。
在面向对象的高级语言中,一直无法完美的统一类类型 (class)和内置类型(整形,浮点型等),只好采取打包(box)和解包(unbox)等特殊方法来在必要时把内置类型封装成类类型,在不需要时再还原回来。。。
其实这有必要吗?我们有必要定义那么多复杂的类型规则吗?我们的语言,应该像C, 就一种类型:raw_piece,你想要什么样的类型,都可以从raw_piece构造出来。比如raw_piece(1)当作字符型,raw_piece(4)当作整形,raw_piece(sizeof(struct.....))当作复杂类型。。。。当然,函数库可以预先构造一些经常用到的类型,以方便使用。
我们的编程语言应该简洁,我们的世界应该简单,整个宇宙说不定只有一个定理。。爱因斯坦晚年曾经想把宇宙中的4种力(强力、弱力、电磁力和万有引力)统一成一种,这就是一种追求简单的境界。
我认为C语言还是过于复杂,C99中引入的一些现代特性根本没有必要,完全可以通过重新定义C的某些特性,通过修改库函数的定义,在不改变语言接口得情况下来满足现代需要
C需要的是一个更多功能的函数库,,只需把现在高级语言种常用的类型、特性、功得能等也纳入C的标准库,那就完全可以取代当今大部分新的语言。C是通过库函数来扩展其功能的,这个设计理念相当优秀!

现摘要有关评论如下

1.C语言的数组名不是指针,说它代表一个地址更准确些。sizeof数组名的时候可以得到数组大小

2.c是弱类型,c++强类型