全部学习汇总: GreyZhang/c_basic: little bits of c. (github.com)
之所以常常把数组与指针联系到一块儿是因为数组的名字在很多时候等同于指向数组首元素的指针。在写程序的时候,这常常会给我们带来很多方便。尤其是需要把数组作为一个函数的处理对象时,我自己常常利用这种“指针等同”的技巧。
不过,C语言中的数组名与指针也并不是完全相同。通常,存在两个例外的情况。
例外之一:指针一般是可以进行赋值修改的,但是数组名称是不能够像指针一样被赋值。
例外之二:在作为sizeof的参数的时候,数组的名称并不会被当做指针进行处理。sizeof对其处理的结果是返回数组元素的空间大小。
其中,第二点例外或者说是特性倒是可以成为我们构建很多程序时候的技巧。因为通过一个宏函数可以实现类似Python中length的功能。
以下是一个简单的示例:
代码:
编译:
运行结果:
从结果来看,运行效果还不错。
之前一直没有利用这种特性,近期才在自己的代码中用到了这种小技巧。这对于需要处理与数组为对象的各种排序或者滤波功能函数的适应性改进还是很有用的。