码迷,mamicode.com
首页 > 编程语言 > 详细

数组和指针关系的探讨

时间:2017-02-09 10:42:24      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:ges   std   images   pre   http   return   代码   技术   ios   

  在学习过程中,数组和指针的操作几乎完全一样,且不说传数组可以用传指针完全替代,而且指针也可以使用[]操作符来访问指针偏移后的地址,所以在实际应用中数组和指针用不出任何差别。(如下代码所示)

#include<iostream>
using namespace std;
int main()
{
  int a[]={1,2};
  cout<<*a<<endl;
  int* b=a;
  cout<<*b<<endl;
  return 0;          
}

  所以人们在实际使用过程中更愿意吧数组名按照const指针来理解,这样理解在一定程度上会让人们淡化数组与指针的区别,反而会让人更好的去理解指针,其根本原因在于,编译器针对数组和指针用相同的操作符干了不同的事情,但是数组和指针终归是不一样的。以下反汇编代码为以上代码的反汇编,大家可以通过比较来发现这相同的*操作编译器干的不同事情:

  技术分享

  技术分享

  通过反汇编分析得出:

  数组名是个地址,你买那直接保存着数组的内容,但是指针保存的是个地址,其内容是另外一个地址,你面的地址指向的才是数组的内容。

 

数组和指针关系的探讨

标签:ges   std   images   pre   http   return   代码   技术   ios   

原文地址:http://www.cnblogs.com/lumaoxin/p/6380554.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!