指针和数组的不同

1. 指针和数组保存的数据内容不同

指针保存指针变量,即保存数据的地址;数组保存同一类型数据的值

2. 指针用于动态数据结构,就是说指针保存的数据可以改变;而数组用于存储固定数目且数据类型相同的元素即一旦数组的大小定了就不容易变了;

3. 指针用malloc()和free()来分配空间和释放空间,而数组是隐式分配和删除;

4. 指针通常指向匿名数据,而数组自身就是数组名

5. 数组名作为函数参数时就等价与指针,某种意义可以说他们等价的,但是一般情况下定义一个数组,则数组名就是常量是不能被改变的,一旦作为函数参数传递,代表地址,则它本身就变为指针变量。显然和我们认识的数组名有所违背。

例子:

int arr[]

arr++;

上面两行在一般的主函数中就会出现编译错误

int fun(int arr[])

arr+;

上面两行作为函数参数是可以改变的

指针和数组的相同点

1. 作为函数参数时数组名就等于指针   void fun(int arr[])

解释:函数形参int arr[]与int *arr是等价的,也就是通常我们说的数组名代表数组首元

数组和指针的区别与联系相关推荐

  1. C++数组与指针的区别

    数组与指针的区别 前言 修改内容上的差别 运算符sizeof 可以计算出数组的容量(字节数) sizeof(p),p为指针得到的是一个指针变量的字节数,而不是p所指的内存容量 计算数组和指针的内存容量 ...

  2. 一道题目让你看出C语言的数组与指针的区别:

    文章目录 题目概述: 输入格式: 输出格式: 输入输出样例: C语言题解: 错误的运行结果: 错误问题的分析与定位: C库的malloc函数讲解: 函数原型: 函数形参: 函数的返回值: 内存的释放: ...

  3. 面试笔记 | 数组与指针的区别

    1. 简述数组与指针的区别 数组是直接访问数据的. 指针是间接访问数据的. 定义: 数组是类型相同.数目固定的若干个变量的有限集合,它存放的是数据. 指针是变量的地址,存放的是变量的地址. 存储方式: ...

  4. 数组与指针的区别与联系

    1 引言 数组并非指针,在初学C语言时,我们会觉得"数组和指针是相同的",实际上,这是一种非常危险的说法,并不完全正确.下面完整地解释一下数组什么时候等同于指针,什么时候又不等同于 ...

  5. C语言学习笔记---数组和指针的区别

      在平时使用数组和指针的时候,感觉他们的使用很类似.那么数字和指针在使用的过程中到底有什么区别呢?   下面通过一个例子来简单分析一下. char str1[] = "abcdef&quo ...

  6. 数组和指针的区别与联系(详细)

    一.概念 数组:数组是用于储存多个相同类型数据的集合. 指针:指针相当于一个变量,但是它和不同变量不一样,它存放的是其它变量在内存中的地址. 二.赋值.存储方式.求sizeof.初始化等 1.赋值 同 ...

  7. 深入理解数组与指针——原因在于”退化“

    (一) 数组与指针本质是不同的.如下图所示 char a[]="hello"; char *p="hello"; 上述代码的初始化结果如下图所示: a就是一个数 ...

  8. 十一:数组和指针的关系?

    1. 数组和指针的区别: 概念: 数组:数组是用于存储多个相同类型数据的集合,数组名是首元素的地址. 指针:指针相当于一个变量,但是它和普通变量不一样,它存放的是其他变量在内存中的地址,指针名指向了内 ...

  9. C语言指针数组与数组指针的区别

    C语言指针数组与数组指针的区别 首先,顾名思义 数组指针是一个指针,是指向一个数组的指针,如 int (a*)[5]:这就是一个指向含有5个元素的数组的指针 指针数组是一个数组,它包含的元素全是指针变 ...

  10. c/C++计算int / int *数组的长度;sizeof(指针),sizeof(数组名)的区别

    1.计算int *数组长度: int arrayVlenth(float *p) {int len = 0;while (*p){p++;len++;}return len; } sizeof(指针) ...

最新文章

  1. Linux中获取当前程序路径的方法
  2. 三十二、图的创建深度优先遍历(DFS)广度优先遍历(BFS)
  3. 微软转型里程碑:云计算收入首次超过Windows业务
  4. graylog2 架构--转载
  5. fopen需要改写成fopen_s的时候
  6. maven重新指定仓库存储路径
  7. 计算机网络专业教学模式,计算机网络技术专业教学模式改革探索
  8. 织梦无子栏目时禁止调用同级栏目
  9. 海华模组:WIFI、BT、SoC模组列表
  10. linux 向程序发送信号,Linux下的信号处理
  11. centos 字体的修改
  12. 推荐这款接口管理神器,集成了Swagger和postman,mock的功能
  13. Android开发笔记(一百四十五)仿应用宝的垃圾清理动画
  14. 开源的“底线”在哪里?
  15. Android学习之路五:Dialog和Toast
  16. JDK5后的特性整理
  17. 如何在Mac上合并日历
  18. http code 000
  19. 在计算机桌面中选择了隐藏如何显示不出来的,电脑桌面文件被隐藏了怎么办
  20. vs2017社区版在离线的电脑上注册方法

热门文章

  1. MatLab简单数据处理拟合
  2. 基于最小二乘法的直线拟合原理及C++实现
  3. YUM安装及配置详解
  4. 纯追踪算法(Pure Pursuit) vs 线性二次型(LQR)法
  5. Conformal lec learning6: NEQ 的种类
  6. XAMPP安装和使用教程
  7. Python---re.findall的用法
  8. php后台?php?和?php的区别
  9. 构造函数和析构函数能是虚函数吗?
  10. C++命名空间namspace解析——“cout”未声明的标识符,“cin”未声明的标识符