数组与指针的区别

来源:互联网 发布:延迟选择实验 知乎 编辑:程序博客网 时间:2024/06/06 04:49
在很多时候,对于指针变量可用数组方式操作,对于数组可用指针变量方式操作,可是指针变量和数组毕竟不是同一个东西,下面我们来归纳几点数组名和指针名的区别:
  以下的讲解基于如下这段代码:
    char a={'a','b','c'};
    int *p = a; 
1、指针变量名可以被赋值,数组名不可以被赋值。也就是说:p=p+1;是正确的,a = a+1;是错误的。
2、sizeof(p)的值为4,sizeof(a)的值为12。
  求指针变量的长度详见  http://birduu.com/211.html
    求数组的长度详见  http://birduu.com/220.html节。
3、对于定义的一个指针变量:char *p; 声明时写成 extern char p[n];(n=1,2,3...)的形式是不可以的;
   同样,如果对于数组形式的定义:char a={'a','b','c'}; 声明时写成 extern char *a;也是不可以的; 详见  http://birduu.com/431.html。
0 0
原创粉丝点击