情不自禁爱上了这种简约美

这几天一直都在做C的编程题,不知不觉中就喜欢上了它。

以往,我讨厌用指针,觉得用数组下标就可以解决大多数的指针问题,也讨厌分析一大串没有加括号的运算符的运算结果,更别说自己写这样的一串了。现在,我发现,其实指针真的很好用,我更是喜欢用++、‐‐、+=、‐=等等的复合运算符,有时候真的会使我不禁惊叹,怎么可能有如此精炼、如此美妙的C语句。

就比如说吧,一般的编程题会要求不得使用C 提供的字符串函数如strlen(s), strcat(s1,s2), strcpy(s1,s2)等等,如果能够巧妙的应用指针和复合运算符等,是可以很精炼的实现这些函数的功能的。

我编的最得意的一个函数就是用来实现strcpy(s1,s2)的copy(s1,s2)函数,整个函数就一条语句

void copy(char *s1,char *s2)

{ while(*s1++=*s2++);}

真是太美了,一种精炼美,整个函数可以说就是一个空循环语句,而其中的循环控制条件所包含的内容就太多了,既包含了字符串结束标记’\0’的判断,也包含了赋值、指针下移……还有从copy(s1,s2)延伸的到的实现strcat(s1,s2)功能的函数connect(s1,s2),也很是美妙的

void connect(char *s1,char *s2)

{

while(*s1) s1++;  /*不能写成while(*s1++);,否则就把s1 的’\0’保留了。*/

while(*s1++=*s2++); /*一个空循环语句,相当于strcpy(s1+strlen(s1),s2)*/

}

我真的不禁要惊叹C 语言的美妙,真是太美了,学过C 语言的你们,发表点看法吧!!!!

2008/7/11, Fri

Leave a Reply

Your email address will not be published. Required fields are marked *