指针是C语言和C++语言的精华如果未能很好地掌握指针,那 C/C++也基本等于没学。
可惜,对于刚毕业的计算机系的学生,几乎没有人真正完全掌握了指针和数组、以及内存管理,
那么
什么是指针,什么是数组。数组和指针之间有什么样的关系?
int*p;
大家都知道这里定义了一个指针 p。但是 p到底是什么东西呢?还记得第一章里说过,
“任何一种数据类型我们都可以把它当一个模子”吗?p,毫无疑问,是某个模子咔出来的。
我们也讨论过,任何模子都必须有其特定的大小,这样才能用来“咔咔咔”。那咔出 p的这
个模子到底是什么样子呢?它占多大的空间呢?现在用 sizeof测试一下( 32位系统):sizeof
(p)的值为 4。嗯,这说明咔出 p的这个模子大小为 4个 byte。显然,这个模子不是“ int”,
虽然它大小也为 4。既然不是“ int”那就一定是“ int*”了。好,那现在我们可以这么理解这个定义:一个“
int*”类型的模子在内存上咔出了 4个字节的空间,然后把这个 4个字节大小的