第一章 认识指针
指针在C和C++中随处可见,它给程序员带来了极大的方便,指针为动态内存的分配提供了重要支持。使用指针我们可以方便的操控内存,提高程序的运行效率;同时利用指针变量我们可以实现各种数据结构,例如链表等;另一方面指针与数组的表示法密切相连,指向函数的指针也为程序中的流控制提供了更多的选择。
指针的基本概念和简单,就是一个存放内存地址的变量,所以理解指针的关键在于理解C程序如何管理内存。指针包含的是内存地址,不理解内存的组织和管理方式,就很难理解指针的工作方式。牢牢掌握了C语言程序的内存及其组织方式,理解指针就容易的多。
1、C中内存的组织和管理方式
1.1 C语言可执行程序的内存情况(预备知识)
首先Ubuntu环境下生成可执行文件a.out
gcc sample.c&&./a.out
然后使用Linux的size命令来查看可执行文件的内存分配和管理形式
可以看出,此执行程序在存储时分为代码段(text),数据段(data)和未初始化数据段(bss)(上述dec和hex分别是此执行文件所占的内存总大小的十进制和十六进制表示)
- 代码段(text):存放CPU执行的机器指令。通常情况下,代码段是可以共享的