VS CRT C标准库函数strrev解析

char * t_strrev (char * string)
{
char *start = string;
char *left = string;
char ch;
while (*string++) /*此时指针变量指向\0后面一个*/
;
string -= 2;//指针住前移,指向最后一个字符的指针

while (left < string)
{
ch = *left;//首字符赋值给中间变量ch
*left++ = *string;//指针自增,并把最后一个字符,赋值给第一个字符
*string-- = ch;//指针自减,把第一个字符赋值给最后一个字符
}
return(start);//返回字符串
}

需要理解的知识:

指针的自加 ,自减运算也是地址运算

m = * p ++ 等价于 m = *(p ++)
取指针 p 当前所指变量的值赋给变量 m ; p 做加 1 运算 , 指向下一个目标变量 .

m = * ++ p 等价于 m = * ( ++ p)
p 做加 1 运算 , 指向下一个目标变量 ; 取指针 p 当前所指变量的值赋给变量 m .

m = (*p)++ 与 m = ++(*p)
前者是将指针 p 所指的变量的值赋给变量 m , 然后变量 *p 自加 1 ;

后者是将指针 p 所指的变量 *p 的值自加 1 后赋给变量 m .

posted on 2012-11-12 22:44  狼爱上羊  阅读(362)  评论(0编辑  收藏  举报

导航