原帖由 jist12321 于 2007-4-19 18:51 发表
你这里定义的是char *s,这时的s是一个变量,是一个指向指针的变量,你要改变他的地址,那么你就得把指针这个变量的地值传进去,也就是说参数里应该是int ltrim(char **ss), 这时,你再试试看.
原帖由 zghover 于 2007-4-20 09:28 发表
void ltrim(char *ss)
{
int j=0;
int len=strlen(ss);
while(ss[0] == ' '){
for(j=0;j<len;j++)
ss[j]=ss[j+1];
}
}
原帖由 cugb_cat 于 2007-4-20 09:02 发表
其实指针变量和普通变量是一样的,在向函数传参数的时候也是一样的,统一对待~
在函数中改变指针的值和在函数中改变指针指向地址单元的值是不一样的
改变指针的值是不会反映给调用者的~
原帖由 zghover 于 2007-4-20 09:28 发表
方法二:
void ltrim(char *ss);
int main()
{
char *s=" abc"; /* 比如s指向FFD0 */
ltrim(s); /* 现在s仍指向FFD0, 但FFD0开始的字符串由" abc"\0变成了"abc"\0\0 */
...
欢迎光临 Chinaunix (http://bbs.chinaunix.net/) | Powered by Discuz! X3.2 |