C++指针:实参为指针与数组名详解

需积分: 12 3 下载量 89 浏览量 更新于2024-07-13 收藏 2.03MB PPT 举报
本资源主要讲解C++中的指针概念和其在函数参数传递中的应用,特别是当实参为指针变量,形参为数组名的情况。首先,理解指针的基础概念,它涉及到内存管理和数据存取方式。在C++中,系统为变量分配内存空间,每个内存单元都有唯一的地址,这使得我们可以通过地址直接访问或间接访问变量。 在函数调用中,当实参为指针时,例如`f(p, 10)`,这里的`p`是一个整型指针,它指向数组`a`的第一个元素。函数`f`接受一个整型数组和数组长度作为参数,形参`x`实际上是数组名,它代表的是整个数组的首地址。因此,即使传递的是数组名,C++编译器会自动推导出数组的大小。 指针变量在C++中被定义为具有特定类型的地址存储空间,如`int *i_point`,其中`*`符号在定义时仅表示这是一个指针类型,而在赋值或解引用时有不同的含义。赋值`*i_point = &i`表示将变量`i`的地址赋给指针`i_point`,而`*p`则表示通过指针访问其指向的数据。 值得注意的是,一个指针变量只能指向与其类型匹配的变量,这意味着整型指针不能指向其他类型的内存地址。此外,指针变量仅用于存储地址,试图将非地址数据赋给指针是非法的,如`p=100`这样的语句是错误的。 在示例代码中,`p1`和`p2`是两个整型指针,它们分别指向`a`和`b`,并通过`*`运算符显示了各自指向的值。这展示了指针如何在不同变量间传递和引用数据。 本资源的核心知识点包括指针的基本概念、地址与指针的关系、指针的类型和赋值、以及指针在函数参数传递中的作用。通过理解和掌握这些内容,可以更好地在C++编程中处理复杂的数据结构和内存管理。