C++中关于指针的理解(一点一点完善中)

本文详细介绍了C++中的指针,包括指针的定义、指针变量、引用指针、指针作为函数参数、动态内存管理、指针与数组的关系、复制构造函数和析构函数在处理指针时的作用,以及函数指针的用法。重点讨论了如何避免悬挂引用和内存泄漏问题,并强调了在涉及对象复制和析构时正确处理指针的重要性。
摘要由CSDN通过智能技术生成

一、指针
1. 指针的值是一个地址,通过间接寻址运算符*来区分地址与指针所指地址保存的值区分开。
一个变量的地址称为该变量的指针。
如果有一个变量是用来专门存放另一变量地址(即指针)的,则称它为指针变量。
要区分指针和指针变量!!!
*实际上是运算符重载(C++中提及),表示指向。
例如: int *p,i;
p = &i;
p的值是i的地址,*p的值为i的值。
指针的两个属性:内容和位置。
其中位置可以存储在另一个变量中,这样便成为了指向指针的指针。
a、指针变量的定义
基类型 *指针变量名;
可以这么说:指针变量名是指向基类型的指针变量。
所定义的指针变量是指向基类型的指针变量,或者说是指针变量只能存放基类型数据的地址。
要注意:不能用一个整数给一个指针变量赋初值。
b、引用指针变量
与指针变量有关的运算符:
&——取地址运算符
*——指针运算符,也称间接访问运算符
c、指针作为函数参数
最经典的例子是swap函数:

#include <iostream>
using namespace std;
int main()
{
    void swap( int *p1,int *p2 );
    int *po1,*po2,a,b;
    cin >> a>>b;
    po1 = &a;
    po2 = &b;
    if ( a < b )
        swap( po1,po2 );
    cout<<"max="<<a<<"min="<<b<<endl;
    return 0;
}
void swap( int *p1,int *p2 )
{
    int temp;
    temp = *p1;
    *p1 = *p2;
    *p2 = temp;
}

在上例中,如果写成这样,就不对

void swap( 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值