4.指针与数组

   一些常见的错误观点是数组和指针是完全可以互换的。尽管数组名字有时候可以当指针来使用,但是数组的名字不是指针。

  数组是能用索引访问的同质元素连续集合。(连续是指数组的元素在内存中是相邻的,中间不存在空隙同质是指元素是同一类型)

  指针在处理数组时很有用,既可以用指针指向已有的数组,也可以从堆上分配内存然后把这块内存当做一个数组使用。

  数组/指针表示法

  给数组地址加1实际加了4,也就是整数的长度。

#include<iostream>
using namespace std;
int main()
{int vector[5]={1,2,3,4,5};int *pv=vector;int value=4;for(int i=0;i<5;i++){*pv++ *=value;}pv=vector;for (int i=0;i<5;i++)cout<<*(pv+i)<<endl;} 

  指针和数组的区别

int vector[5]={1,2,3,4,5};int *pv=vector;

  vector[i]生成的代码和*(vector+i)生成的不一样,vector[i]表示法生成的机器码从位置vector开始,移动i个位置,取出内容。而*(vector+i)表示法生成的机器码则是从vector开始,在地址上增加i,然后取出这个地址中的内容。

  sizeof操作符对数组和同一个数组的指针操作也是不同的。

  sizeof(vector)=20;  //数组分配的字节数

  sizeof(pv)=4;           //指针长度

  如果从堆上分配内存并把地址赋给一个指针,那就肯定可以对指针使用数组下标并把这块内存当成一个数组。

int *pv=(int*) malloc(5*sizeof(int));for(int i=0;i<5;i++){pv[i]=i+1;}/  for(int i=0;i<5;i++){  *(pv+i)=i+1;}

转载于:https://www.cnblogs.com/iloverain/p/5582739.html

总结了一些指针易出错的常见问题(二)相关推荐

  1. 科目三场外考试易出错的环节

    现在很多的城市都已经开始实行电子考试,这使得科目三考试更加公平公正,但还是有考生在考试中忽略了场外易出错的环节导致成绩不合格.    ●起步前不使用安全带     在等待了约2小时后,考生史某终于坐上 ...

  2. c语言指针易错情况,C语言/C++从入门到精通之指针易错点总结

    指针是C语言的灵魂,所以学好指针很关键,本篇主要介绍了C语言/C++从入门到精通之指针易错点总结,通过具体的内容向大家展现,希望对大家C语言/C++的学习有所帮助. 学习C语言肯定会碰到指针,指针是C ...

  3. 帝国cms安装不支持MySQL_15招完美解决帝国CMS安装出错和常见问题

    博客使用帝国cms之后,在安装的时候就遇到出错的情况.提示的在建立数据库的时候报错.经过检查发现在我安装的时候,没有选择mysql数据库的版本号,直接选择的是自动获取.在安装成功之后,打不开首页,提示 ...

  4. MBD建模规范 stateflow建模 无规矩不成方圆 规范建模行为 提升建模效率 。 主要包含模型接口界面及布局,模块的安全使用、预防易出错的建模模式

    MBD建模规范& stateflow建模 无规矩不成方圆 规范建模行为 提升建模效率 . 主要包含模型接口界面及布局,模块的安全使用.预防易出错的建模模式.提高可测性.模型优化等多方面的内容, ...

  5. C++指针数组、数组指针、数组名及二维数组技巧汇总

    本文较为详细的分析了关于理解C++指针数组,数组指针,数组名,二维数组的一些技巧.是比较重要的概念,相信对于大家的C++程序设计有一定的帮助作用. 一.关于数组名 假设有数组: int a[3] = ...

  6. C语言:指针的几种形式二

    一.const指针 1.const int* p和int const* p:两者意义是相同的.指向的内容是只读数据,不可以q改变:但是指向的地址可以改变. 2.int* const p:必须先对指针初 ...

  7. dl380g6服务器开机没信号,DL380 G6常见问题二

    DL380 G6常见问题二 DL380 G6 支持显卡吗? 支持,DL380 G6 最多可支持 150w 的第三方显卡. DL380 G6 支持 6Gb SAS 或 3Gb SATA 技术吗? 是的, ...

  8. 关于指针指向地址中“指向”二字的理解

    为什么要写这文章? 因为对于这个问题:"定义int* p; 系统会给p分配内存空间吗?" 绝大部分回答都是不会. 但是问题来了,刷网课的时候,看到会为p在栈上开辟内存空间. 由此, ...

  9. 【C 语言】一级指针 易犯错误 模型 ( 判定指针合法性 | 数组越界 | 不断修改指针变量值 | 函数中将栈内存数组返回 | 函数间接赋值形参操作 | 指针取值与自增操作 )

    文章目录 一.判定指针合法性 二.数组越界 三.不断修改指针变量值 四.函数中将栈内存数组返回 五.函数间接赋值形参操作 六.指针取值与自增操作 一.判定指针合法性 判定指针合法性时 , 必须进行如下 ...

最新文章

  1. 取消Exchange数据库的自动分配功能
  2. hadoop中datanode无法启动,报Caused by: java.net.NoRouteToHostException: No route to host
  3. 如何在官网下载java JDK的历史版本
  4. 秒杀 985 毕业生的职场技能
  5. java中将查询数据导出_如何在R中将数据框导出到Excel
  6. MySQL 服务无法启动。 服务没有报告任何错误。 请键入 NET HELPMSG 3534 以获得更多的帮助。...
  7. < 数据结构 > 树与二叉树
  8. 腾讯2018秋招笔试真题——安排机器
  9. 洛谷-3387 【模板】缩点
  10. Android Studio——类微信界面设计
  11. 2022年广西食品安全管理员模拟试题及答案
  12. 58同城和赶集网要合并了!
  13. c语言中strstr作用,strstr函数的功能
  14. matlab矩阵创建
  15. 超市买菜系统c语言,买菜就像逛超市,市北打造国内首个“智慧农贸”系统
  16. 模块式柔性自动化生产线实训系统
  17. 深蓝学院移动机器人HW_2
  18. 云计算的认识和看法_如何通俗的理解云计算和大数据?
  19. 20几岁决定女人的一生
  20. 喜忧参半的AI,“裸奔”之下的隐私焦虑 1

热门文章

  1. DataGridView 用户输入时,单元格输入值的设定
  2. WHYZOJ-#60 工资(二分)
  3. 云安全:云访问安全代理(CASB)系统的陷阱和潜力
  4. Java学习笔记---IO操作
  5. C# 窗体间传值(使用委托与自定义事件)
  6. 《HTTP权威指南》学习笔记——HTTP报文
  7. checksum table 【转】
  8. 64位WINDOWS 使用PL SQL DEVELOPER 连接ORACLE 出错问题解决
  9. 【Eclipse】Java Compiler没有Annotaion Processing, 需要安装Eclipse Java Development Tools
  10. 设计模式---命令模式