还是一个C语言问题

2025-01-24 13:26:13
推荐回答(4个)
回答1:

首先在while(*p=='*') p++;语句中就把p的指针移到了没有*的地方
在for循环中把此时的p(p的值不可能是*了)的值赋给a的初始位置就把以前的*给替换了

回答2:

1.经过测试这个函数没有问题呀,函数先把a字符串复制给p,while(*p=='*') p++;这条代码让p指针指向了字符串中星号的后一位字符的地址,然后把它依次重新赋给a字符串直到字符串结束。
2.所谓删除指的是把传入的字符串a前面的‘*’删除,而p只是一个中间赋值操作的一个工具~只要最后打印a字符串就明白了~
不知道我的回答能不能解决你的疑惑~

回答3:

你用后面的非*内容覆盖了前面的*,这就算是删除了*

回答4:

'\0'的asc码是0,非0就是一,表达式就是1,我也不知道正确不知几好好研究吧