C/C++ 数组和指针及引用的区别
发布时间 - 2026-01-11 02:31:18 点击率:次C/C++ 数组和指针及引用的区别

1.数组和指针的区别
(1)定义
数组是一个符号,不是变量,因而没有自己对应的存储空间。但是,指针是一个变量,里面存储的内容是另外一个变量的地址,因为是变量所以指针有自己的内存空间,只不过里面存储的内容比较特殊。
(2)区别
a.对于声明和定义,指针和数组是不相同的,定义为数组,则声明也应该是数组,不可混淆
b.当作下标操作符时,指针和数组是等价的。a[i]会被编译器翻译成*(a+i).
c.当数组声明被用作函数形参的时候,数组实际会被当作指针来使用。
(3)从汇编角度分析
**int i = 10;**
00C44CC8 mov dword ptr [i],0Ah
**int * p = &i;** (1)
00C44CCF lea eax,[i]
00C44CD2 mov dword ptr [p],eax
**int arr[5] = {0};**(2)
00C44CD5 mov dword ptr [arr],0
00C44CDC xor eax,eax
00C44CDE mov dword ptr [ebp-30h],eax
00C44CE1 mov dword ptr [ebp-2Ch],eax
00C44CE4 mov dword ptr [ebp-28h],eax
00C44CE7 mov dword ptr [ebp-24h],eax
解释:
(1)lea先取i的地址,然后存入p指向的空间中,足够证明p有自己的空间。
(2)没给数组明分配空间
2. 数组和引用区别
(1)定义
引用是是给一个变量起的别名,引用必须要初始化,引用一经定义不能被改变,初始化的值必须要能取地址,访问引用变量,永远访问的是它所引用的变量的内存。
(2)区别
C语言中没有引用,C++11之前只有一级引用,之后有左引用和右引用。
(3)汇编角度
**int i = 10;** 00ED4CBE mov dword ptr [i],0Ah **int &a = i;** 00ED4CC5 lea eax,[i] 00ED4CC8 mov dword ptr [a],eax
如有疑问,请留言或者到本站社区交流讨论,共同进步,感谢阅读,希望能帮助到到大家,谢谢大家对本站的支持!
# C/C++
# 数组和指针及引用的区别
# 数组与指针的区别
# 指针与引用的区别
# 深入理解c++指针的指针和指针的引用
# 详解C++中指针和引用的区别
# c++中引用和指针的区别和联系
# C/C++中指针和引用之相关问题深入研究
# C++ 中引用与指针的区别实例详解
# C++中引用传递与指针传递的区别(面试常见)
# C++入门教程之引用与指针
# 自己的
# 是一个
# 的是
# 必须要
# 如有
# 希望能
# 另外一个
# 谢谢大家
# 也应
# 翻译成
# 没给
# 共同进步
# 只不过
# 则声明
# mov
# Ah
# ptr
# dword
# int
# strong
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
VIVO手机上del键无效OnKeyListener不响应的原因及解决方法
如何用虚拟主机快速搭建网站?详细步骤解析
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
Laravel Session怎么存储_Laravel Session驱动配置详解
如何快速生成凡客建站的专业级图册?
如何安全更换建站之星模板并保留数据?
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
高性能网站服务器部署指南:稳定运行与安全配置优化方案
Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载
Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)
Python3.6正式版新特性预览
Android使用GridView实现日历的简单功能
Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧
Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法
谷歌Google入口永久地址_Google搜索引擎官网首页永久入口
bing浏览器学术搜索入口_bing学术文献检索地址
jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】
微信小程序 闭包写法详细介绍
油猴 教程,油猴搜脚本为什么会网页无法显示?
标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南
Laravel如何使用withoutEvents方法临时禁用模型事件
Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤
如何确认建站备案号应放置的具体位置?
Laravel怎么调用外部API_Laravel Http Client客户端使用
如何在IIS7上新建站点并设置安全权限?
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
如何在Windows环境下新建FTP站点并设置权限?
mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?
php静态变量怎么调试_php静态变量作用域调试技巧【解答】
,怎么在广州志愿者网站注册?
,在苏州找工作,上哪个网站比较好?
高端企业智能建站程序:SEO优化与响应式模板定制开发
如何在阿里云完成域名注册与建站?
高端建站三要素:定制模板、企业官网与响应式设计优化
Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比
Python文本处理实践_日志清洗解析【指导】
Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】
Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层
Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置
Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】
Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】
高端建站如何打造兼具美学与转化的品牌官网?
html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】
为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】
Mybatis 中的insertOrUpdate操作
如何在橙子建站中快速调整背景颜色?
Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】
下一篇:nginx监听端口是什么意思
下一篇:nginx监听端口是什么意思

