当前位置: 代码迷 >> WinCE >> C语言 数组 指针 复本
  详细解决方案

C语言 数组 指针 复本

热度:415   发布时间:2016-04-28 11:54:55.0
C语言 数组 指针 副本
int strlen(char *s)
{
    int n;
    for(n=0;*s!='\0';s++)
    n++;
    return n;
}执行s++运算不会影响到strlen函数的调用者中的字符串,它仅仅对该指针在strlen函数中的私有副本进行自增运算。
想知道其中“副本”是大概什么意思,我该如何理解这个词?请大神指点
------解决思路----------------------
这个与函数的形参有关,s 做为参数传入,对 s 的修改并不影响实参的数据。
如果传入指向指针的指针,则会影响 s 的实参值。

s: 另建立了一个相当于实参数值的指针,也就是副本。
------解决思路----------------------
副本,也可以理解为给变量另起一个名字。
然后对这个新名字进行操作,这个新名字无论如何变,都不会影响还来那个名字。这种变,只是指位置的移动。因为两个指向同一块内存区域,如果改变内容会影响所有的。

————————————————————————————————————————————————
我参加 CSDN 博客了,投票网址如下,大家多多支持。多谢先!
http://vote.blog.csdn.net/blogstar2014/details?username=91program#content
  相关解决方案