数组和指针的区别

原创 2015年11月17日 21:37:35

考虑两个声明:

int a[5];
int *b;

数组和指针的相同点:都可以通过“*”操作符进行间接访问和“[]”进行下标引用操作。

不同点:

  1. 声明一个数组时,编译器将根据声明时指定的元素个数为数组在内存中分配空间,int a[5];将会在内存中分配5个存储int类型数据的空间。而int *b;则只会分配一个存储指向int类型变量的指针所需的空间。也就是说,int a[5]会分配5个空间,每个空间用来存储int类型的数据;int * b会分配一个空间,这个空间用来存放一个地址,并且这个地址是未知的,因为并未对指针变量b进行初始化。
  2. 在未进行其他赋值操作之前,*a操作是合法的,但是*b确是非法的。因为*a将访问的内存空间是确定的,而*b将访问的内存空间是不确定的。
  3. a++不能通过编译,b++可以通过编译,因为a的值是一个常量。a是一个指针常量,b是一个指针变量。

    a:
             

    b:
        ?

版权声明:本文为博主原创文章,未经博主允许不得转载。

面试题之数组指针和指针数组的区别

1、数组指针(指向数组的指针) (1)数组在内存中的表示 创建一个数组就是在内存里面开辟一块连续的空间,比如int a[4];就是在内存里面开辟了一个大小为4*sizeof(int)字节的...
  • sum_TW
  • sum_TW
  • 2016年12月09日 16:28
  • 3922

关于C语言你不知道的事(1)–指针和数组的区别

关于C语言你不知道的事(1)–指针和数组的区别 Table of Contents 1 一个很多人都会做错的面试题 2 数组与指针的差别 2.1 数组和指针是如何访问的 2.2 数组和指针可...
  • huangkangying
  • huangkangying
  • 2014年12月29日 21:59
  • 3454

C语言:数组和指针的区别

实际上关于数组与指针的区别这个问题在《C专家编程》已经有很详细的阐释,但我想用自己的语言说一说我的理解。数组是指针?最近在做数据结构课设,其中一个函数发生了令人费解的错误,简化后的代码如下:#incl...
  • imred
  • imred
  • 2015年05月02日 19:08
  • 13233

指针与数组的比较

C++/C 程序中,指针和数组在不少地方可以相互替换着用,让人产生一种错觉,以为两者是等价的。     数组要么在静态存储区被创建(如全局数组) ,要么在栈上被创建。数组名对应着(而不是指向)一块内存...
  • yanxiaolx
  • yanxiaolx
  • 2016年05月29日 13:43
  • 499

指针,数组,引用之间的不同点

指针和数组的区别: 数组整数变量加1,其值将增加1,,但将指针变量加1后,增加的量等于它指向的类型的字节数。 指针的值可以修改,而数组名是常量不可以修改。 对数组应用sizeof运算符得到的是数组的长...
  • xuguoli_beyondboy
  • xuguoli_beyondboy
  • 2016年01月27日 13:51
  • 640

引用和指针的区别,数组和指针的区别

一:引用和指针的区别 1:引用并非对象,它只是为一个已存在的对象所起的另外一个名字,必须初始化,而且无法改变它绑定的对象,之后每次使用这个引用都是访问最初绑定的那个对象。 2:指针本身是对象,可以...
  • u013445530
  • u013445530
  • 2015年06月24日 12:08
  • 1018

字符数组与字符指针的区别与联系

1.字符指针可以指向一个字符串。 我们可以用字符串常量对字符指针进行初始化。例如,有说明语句: char *str = "This is a string."; 是对字符指针进行初始化。此时,字...
  • zhaoshuzhaoshu
  • zhaoshuzhaoshu
  • 2014年07月10日 11:15
  • 2381

数组指针和指针数组的区别

数组指针和指针数组的区别中国的文字博大精深,不仔细研读,很容易理解错误,就拿这个数组指针和指针数组来说吧,刚开始接触很容易弄混 那么到底什么是数组指针?什么是指针数组?他们之间又有什么区别?* 指...
  • qq_30137611
  • qq_30137611
  • 2016年10月01日 00:25
  • 580

指针数组和数组指针的区别

变量类型判断:变量和哪个关键字先结合,该变量就是什么类型。  例如 (1)int (*p)[n];   //p先和*结合,故是一个数组指针 ,即指针指向一个数组 (2) int *p...
  • kulala082
  • kulala082
  • 2016年11月30日 14:35
  • 1103

数组与指针的区别及函数的调用

1.数组与指针的区别: (1)空间分配 指针是动态分配空间,通过malloc在堆上分配所需要的空间,分配的空间不一定连续,在使用完之后需要调用free()来释放分配空间。而数组是静态分配空间,在全...
  • Mormont
  • Mormont
  • 2016年11月19日 19:08
  • 193
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数组和指针的区别
举报原因:
原因补充:

(最多只允许输入30个字)