c++指针变量(一)与void 指针

本文深入探讨了C++中指针的基本概念,包括如何声明和使用指针,以及指针在动态内存分配中的作用。文章解释了指针的三种主要用途,并介绍了null指针和void指针的使用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过指针,可以简化一些C++编程任务的执行,还有一些任务,如动态内存分配,没有指针是无法执行的。每一个变量都有一个内存位置,每一个内存位置都定义了可以用&运算符访问地址,它表示了在内存中的一个地址。

什么是指针:

      指针是一个变量,其值为另一个变量的地址,即内存位置的直接地址。就像其他变量或常量一样,必须在使用指针存储其他变量的地址之前,对其进行声明。指针变量声明的一般形式为:

type *var-name

在这里,type是指针的基类型,它必须是一个有效的c++数据类型,var-name是指针变量的名称,

1.当*用于定义时,是表明该变量为指针类型

2.*的作用可以用来取值

3.*用于取值时就是取出该地址中存储的值。

 

其他:

Null 指针:Null指针是一个定义在标准库中的值为零的常量。

在变量声明的时候,如果没有确切的地址可以赋值,为指针变量赋一个Null值是一个良好的编程习惯,赋为Null值的指针被称为空指针。

#include <iostream>
using namespace std;
 
int main()
{
    int a = 10;
    cout<<"变量a 的地址"<<&a<<endl;
    int *p=NULL;//这里的*是标识p的类型为整型指针(int*)类型。
    cout<<"指针p的初始值为"<<p<<endl;
     
    p=&a;//将p指向a的地址。
    cout<<"指针p获取的a的地址为"<<p<<endl;
    
     
    cout << "*p = " << *p <<endl; //输出*p的值。这里的*就是取值的作用。
     
    a = 20;//改变a的值,也就是改变*p的值。
    cout << "*p = " << *p <<endl; //再次输出*p的值。这里的*同样是取值的作用。
    return 0;
}

运行结果

变量a 的地址0113FF14
指针p的初始值为00000000
指针p获取的a的地址为0113FF14
*p = 10
*p = 20
请按任意键继续. . .

void指针

void指针是一钟特殊的指针,表示为无类型指针,可以指向任何类型的数据,也就是说,任何类型的指针都可以直接赋值给void指针,而无需进行其他相关的强制类型转换,如

void *p1;
int *p2;
int  *p3;
 '''
p1=p2;//将整形指针p2赋值给了空指针p1
p3=p1;//错误,可以将空类型指针指向其他类型,但不可以将其他类型的指针赋值给空类型
p3=(int*)p1;正确,需要进行强制类型转换

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值