博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数组和指针关系的探讨
阅读量:7037 次
发布时间:2019-06-28

本文共 564 字,大约阅读时间需要 1 分钟。

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

1
2
3
4
5
6
7
8
9
10
#include<iostream>
using 
namespace 
std;
int 
main()
{
  
int 
a[]={1,2};
  
cout<<*a<<endl;
  
int
* b=a;
  
cout<<*b<<endl;
  
return 
0;         
}

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

  

  

  通过反汇编分析得出:

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

本文转自xsster51CTO博客,原文链接:http://blog.51cto.com/12945177/1932224 ,如需转载请自行联系原作者
你可能感兴趣的文章
LOJ#2552. 「CTSC2018」假面(期望 背包)
查看>>
STRING使用EQUALS方法和==分别比较的是什么?
查看>>
window10下TensorFlow-gpu环境搭建
查看>>
(原創) i++和++i哪个速度较快? (C/C++) (C)
查看>>
(轉貼) p-teq公司的USB驗孕棒(USB Pregnancy Test) (News)
查看>>
电子书下载:Pro Silverlight 5 in C# 4th
查看>>
ERROR/AndroidRuntime(716): java.lang.SecurityException: Binder invocation to an incorrect interface
查看>>
BizTalk开发系列(六) BizTalk开发简述
查看>>
两步解决《内部服务器错误:500》
查看>>
新建一个struts2项目
查看>>
find big file
查看>>
蒙特罗卡π算法(C++语言描述)
查看>>
自动生成单据号
查看>>
使用Maven管理Eclipse Java项目
查看>>
C#学习笔记—对话框的初始化
查看>>
C#代码中插入X86汇编
查看>>
python学习笔记011——闭包
查看>>
5.Node.js 安装配置
查看>>
php中局部变量和全局变量
查看>>
Beamer制作索引
查看>>