数组和指针的传递

作者在 2010-11-24 15:16:48 发布以下内容
     当数组和指针当做函数传递的形参的时候,会发生一些比较小的错误,但这些小的错误却会引起致命的危险.
  当数组当做函数的形参时,传递的是数组的首地址的一份拷贝(这里不是数值,而是一份地址,但是根据地址却访问的是同一个数组),数组的内容和长度并没有被传过去,但是在方法中却可以根据传递过去的首地址去寻找这个数组(数组在内存中的分配时一块连续的内存空间),可以根据下标去寻找到数组的值,但是在方法中也必须要进行数组的越界检查(比需将数组的参数当做一个变量也要传递给方法),如果不进行检验的话会发生很意想不到的答案.
   当指针作为函数传递的形参的时候,是传递的是这个指针的一份拷贝(指针中存放的是数组首地址的一份拷贝,并不是数组的内容),这样就可以根据首地址进行指针操作访问数组元素(指针加加或者指针减减),这里也要进行越界的检查,一般当指针指向数组的最后一位的下一位是并不会报错,但是如果指针指向的是数组第一位的前一位时,这个问题十分的严重的,所以这里和数组是没有区别的,但是下标操作一定不会比指针更有效率,但指针有时比下标更有效率
 
    自己总结的不知道对错,希望大家给予指点!
学习 | 阅读 922 次
文章评论,共0条
游客请输入验证码
浏览2101次
最新评论