什么时候定义指针,在程序中可以用数组?指针和数组的区别在哪?
这个问题比较深,到现在也不是很懂,推荐一篇帖子,希望有助于你的理解。http://bbs.csdn.net/topics/300119793
指针可以动态申请空间,数组毕竟还是静态的
指针就是一个地址,数组的名字也是一个地址,
eg: int a ; //a就是一个地址空间
int b[10] ; //这里的b也是一个地址,这个地址是常量
*你可以写_ a=b;_这样a也指向这个数组的首地址*,那么a[1]==b[1],以此类推
我曾经写过一个文档关于一级指针,二级指针,以及与数组的关系,但是我的文章在百度文库里如果你有百度帐号,并且想看看我给你个链接,同时如果你想懂得
指针,就一定要从物理地址的角度去看,最好是从计算机组成原理中的内存分配的角度去看,其实指针真的很简单对于开发系统的人来说就是一个用来存储
变量的容器然后给这个容器命名(当然命名是在程序中操作的,而在内从中每一个存储单元都有他的物理地址,实际上每一个存储小单元只能存储一位bit位,但是他们都有固定的地址)
,然后系统中会有一个地址指针来遍历没一个内存地址,如果看不懂理解不了就慢慢理解吧,毕竟这涉及到很多,包括半导体存储概念,还有三线制,反正rom和ram都是有固定的地址的。
http://wenku.baidu.com/view/ccaa4ebe3169a4517623a38e看看这篇文章吧很,很易懂。
简单的说你应该会明白,就是可以看作一个是固定的,一个是可变的,数组一旦分配好之后在内存中的位置是定的,而指针是可以通过指向不同位置得到不同结果。
详细的学习可以参加众多资料。