C语言指针详解:变量地址与指针变量

需积分: 1 0 下载量 159 浏览量 更新于2024-08-22 收藏 454KB PPT 举报
"本资料为计算机二级辅导课件,主要讲解了指针相关的知识,包括变量的地址、指针变量的定义、赋值以及如何通过指针访问变量等内容。" 在计算机编程中,特别是在C语言中,指针是一个重要的概念。指针变量是用来存储其他变量地址的特殊类型变量。在标题中提到的"给指针变量赋初值",是指将一个变量的地址赋值给指针变量,以便通过指针间接访问该变量。 首先,我们要理解变量的地址。在C语言中,每个变量在内存中都有一个唯一的地址,这个地址是变量存储位置的标识。例如,`int num=100, *p;` 这段代码定义了一个整型变量`num`并初始化为100,然后定义了一个指向整型的指针`p`。接着,`p = #` 这行代码将`num`的地址赋给了`p`,这样`p`就指向了`num`。 指针的表示通常用十六进制表示,如`FF7C`,这代表内存中的一个地址。在描述中提到了内存布局,`num`变量的值`100`位于`FF7C`地址处,而`p`指向这个地址。 在C语言中,我们可以使用`&`运算符获取变量的地址,但`&`不能用于表达式、常量或被声明为`register`的变量。例如,`q=&(k+1)`这样的表达式是不合法的,因为`k+1`是一个表达式,不是变量。 本章的重点还包括: 1. 变量的地址和指针:每个变量都有其在内存中的地址,指针就是存储这些地址的变量。 2. 指针变量的定义和基类型:指针变量需要指定其基类型,比如`int *`、`float *`等,表示它将指向哪种类型的变量。 3. 给指针变量赋值:通过`=`运算符将变量的地址赋给指针变量。 4. 对指针变量的操作:可以使用`*`运算符解引用指针,访问指向的变量。 5. 函数之间地址值的传递:通过指针,函数可以修改实参变量的值,实现更灵活的数据交换。 在程序执行中,数据存储在内存中,每个内存单元有一个内存地址。直接存取变量是指通过变量名直接访问,而间接存取则是通过指针变量来访问对应的内存地址。例如,如果`i`、`j`和`k`是`int`类型的变量,它们在内存中占据连续的存储空间,如2000到2011。当我们通过指针变量来操作这些变量时,实际上是在操作它们对应的内存地址。 了解并熟练掌握指针的使用是学习C语言的关键,它能帮助程序员更高效地管理内存,实现复杂的数据结构和算法。通过指针,可以实现动态内存分配,创建链表、树等数据结构,以及实现回调函数、函数指针等功能。在实际编程中,理解指针的工作原理对于优化代码性能和解决内存相关问题至关重要。