实用,为什么这样的一个数组?
Lisp只是用它来建立原子和表在世界各地,的确阵列是表中的一个超集,该表是一个数组,但不是表数组。代价将能够找到这种略带,无需证明。JS关联数组是一个红黑树,未关联数组C超集阵列,由于C用。或许实用的不是数组,而是运算符[],C++仅仅用重载[]就实现了数组。[]仅仅是一个函数调用而已。一种函数调用的简写形式。
这样的简写或者说语法糖非常重要,由于它让代码的可读性更好。[]是一个运算符重载,即a[1]会变换为标准的函数调用operator[](a,1)。再看看其它的运算符,1+2变换为operator+(1,2)。
两者的共性是变换,这个变换仅仅是一个简单的文本替换,没错,它就是宏。
我非常早就意识到C++的模板事实上是一种宏(这点在我的代码里也能够看出),也就是说宏是模板的超集。如今竟然发现运算符重载也是一种宏!
我一直以为模板和运算符重载才是C++的精髓。它们构建了整个C++世界。我错了,宏才是C++的根本。难道宏就是世界的终极原子?至少C++的if、for眼下还不是宏,我试试能不能把它们变成宏。
总结例如以下:
表是数组。数组是运算符重载。运算符重载是宏,模板是宏,所以大家都是宏。
精彩评论:
电脑内存或文件内容仅仅是一个一维二进制字节数组及其相应的二进制地址;
人脑才将电脑内存或文件内容中的这个一维二进制字节数组及其相应的二进制地址的某些部分看成是整数、有符号数/无符号数、浮点数、复数、英文字母、阿拉伯数字、中文/韩文/法文……字符/字符串、汇编指令、函数、函数參数、堆、栈、数组、指针、数组指针、指针数组、数组的数组、指针的指针、二维数组、字符点阵、字符笔画的坐标、黑白二值图片、灰度图片、彩色图片、录音、视频、指纹信息、身份证信息……
电脑内存或文部分内容的字节只是一个数组,以上已经证明阵列宏,所以,计算机内存是一个宏。
版权声明:本文博主原创文章。博客,未经同意不得转载。