重温C语言::1::(8)数组与指针之纠结

2119阅读 0评论2011-07-16 onezeroone
分类:C/C++

1:概述
     在用C的过程中,恐怕最纠结的就是数组与指针的,有时候可以混用,有时候不可以,真头疼。

2:声明与定义
声明必须和定义一致。例:
定义:int m[100];  声明:extern int* m; //Error 数组和指针并不完全相同
定义:int i; 声明:extern float i; //Error 跟上面一个道理

3:左值与右值
4:数组的引用方式
      char a[6] = "abcdef";   //假定a的地址是9980
      执行c = a[i];的过程
5:指针的引用方式
     char *p ;   //假定p的地址是4624
     执行c = *p;的过程
可见数组和指针的引用方式还是存在不同的,指针多里一层间接引用,所以当定义成数组却声明成指针时,将会
安装声明的方式去寻址,请不要报侥幸心理,有时候得到了想要的东西,不过总有一天你会因为这个吃大亏的。

6:数组与指针的区别
      指针:
      数组:
数组和指针都可以在定义时用字符串常量进行初始化,但是指针却不为指向的对象分配空间,只为自身分配空间。
当定义的同时用字符串常量进行初始化,但是只有字符串常量才是这样,这就意味着只读。
上一篇:重温C语言::1::(6)怪怪的声明
下一篇:没有了