归结几点数组名和指针变量名的区别
归纳几点数组名和指针变量名的区别
在很多时候,对于指针变量可用数组方式操作,对于数组可用指针变量方式操作,可是指针变量和数组毕竟不是同一个东西,下面我们来归纳几点数组名和指针名的区别:
以下的讲解基于如下这段代码:
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。
------解决方案--------------------
受教,学习~
------解决方案--------------------
好东西,值得收藏
------解决方案--------------------
建议看expert C,关于这俩区别讲了好几章
在很多时候,对于指针变量可用数组方式操作,对于数组可用指针变量方式操作,可是指针变量和数组毕竟不是同一个东西,下面我们来归纳几点数组名和指针名的区别:
以下的讲解基于如下这段代码:
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。
数组,指针,区别
------解决方案--------------------
受教,学习~
------解决方案--------------------
好东西,值得收藏
------解决方案--------------------
建议看expert C,关于这俩区别讲了好几章