c传指针参数到函数

intstrlen(char*s){intn;for(n=0;*s!='\0';s++)n++;returnn;}“这里s++不会影响到strlen函数的调用者中的字符串... int strlen(char *s)
{
int n;
for(n=0; *s!='\0'; s++)
n++;
return n;
}

“这里s++不会影响到strlen函数的调用者中的字符串,它仅对该指针在strlen函数中的私有副本进行自增运算”

这么说的原因是不是:
因为*s是char型指针变量s所指向的内容作为参数传入函数,所以在strlen函数内操作的实际是*s所知内容的一个副本,如果传入&s,则会改变s的内容?谢谢!
展开
 我来答
kidstar_sean
2009-12-08
知道答主
回答量:4
采纳率:0%
帮助的人:0
展开全部
char *s,传入的s是地址,如果这样写:*s = 'a';或s[0] = 'a';当然会改变s指向的内容.
这里的s++;只是s指针向后走一个char的长度,比如strlen("abc");s指向'a';
s++;后s指向'b';并不会改变s指向的内容.
sandamailcn
2009-12-08 · TA获得超过743个赞
知道小有建树答主
回答量:541
采纳率:0%
帮助的人:0
展开全部
不是,
char *s是调用程序中实际变量的一个副本.
例如:
char *a = "this is a test";
int n = strlen( a );
等价于: s = a;
然后在执行函数里的语句.
因此即使s++,也不会改变a
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式