博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

一个比较好玩的字符串复制函数

Posted on 2011-05-07 09:20  各种不会  阅读(273)  评论(0)    收藏  举报
void strcpy(char* s, char *t){
     while(*s++=*t++);
}

其实上面的代码相当于

1 void strcpy(char *s, char *t)
2 {
3 while((*t)!="\0"){
4 *s = *t
5 s++;
6 t++;
7 }
8 }

其实只要记住了C/C++语言的运算符优先级,理解代码是不难的,顺便复习下优先级:

  1. ()   []   ->
  2. !  ~ ++ --  -(取负)  (type)(强制类型转换)   *(指针)   &(取地址)   sizeof()
  3. *   /    %
  4. +  -
  5. <<    >>
  6. > <   >=  <=
  7. == !=
  8. &(位与)
  9. ^(位异或)
  10. |(位或)
  11. &&(逻辑与)
  12. ||(逻辑或)
  13. ?:
  14. =  +=  -=  *=  /=   %=  |=   ^=   &=   >>=   <<=  各种赋值
  15. ,

结合性:2,13,14是右结合(从右至左,除了++,--),其他都是左结合(从左至右)

在这个地址(http://www.cnblogs.com/zhanglong0426/archive/2010/10/06/1844700.html)看到一个速记口诀觉得不错转一下

括号成员第一 //括号运算符() [] 和成员运算符

全体单目第二 //~ ! * & ++ -- - (type)  sizeof

乘除取余三,加减四

移位五,关系六 //<< >>  > < <= >=

等于不等排第七

位与异或和位或,三分天下 八九十

逻辑或跟与 十二和十一

条件高于赋值

逗号级别最低