【C++】关于指针,你该了解这些

一.指针

1.指针的基本概念

我们都知道,定义了一个简单变量,声明语句指出了该值的类型,并且让程序为该值分配了内存,访问这个内存地址可对该变量应用地址运算符(&),就可以获得他的位置。
请看下面的示例:

#include<iostream>
using namespace std;
int main(){
   int p ;
   double q;
   cout << "p变量的地址为:" ;
   cout << &p <<endl;
   cout << "q变量的地址为:";
   cout << &q ;
   return 0;
}

编译结果:

p变量的地址为:0x70fe1c
q变量的地址为:0x70fe10

通过上面的实例,我们了解什么是内存地址以及如何访问它。接下来,我们看看什么是指针。
什么是指针?
指针是一个变量,其存储的是值的地址,而不是值本身。因此指针名表示的是地址。( * )运算符被称为间接值或解除引用运算符,将其运用与指针,可以得到该地址处存储的值。例如,假设 p是一个指针,则 p 表示的是一个地址,*p表示存储在改地址处的值。*p 与普通变量具有相同的效果。

2.指针的声明和初始化

(1)指针的声明
就像其他变量或常量一样,您必须在使用指针存储其他变量地址之前,对其进行声明。指针变量声明。指针变量声明的一般形式为:

type *p_dates;

例如:

int *p;

这表明,*p的类型为int。由于( * )运算符被用于指针,因此 p 变量本身必须是指针。我们说 p 指向 int 类型,我们还说 p 的类型是指向 int 的指针。可以这样说 p 是指针(地址),而 *p是 int, 而不是指针。
(2)指针的初始化
可以在声明语句中初始化指针。在这种情况下,被初始化的是指针,而不它指向的值。也就是说,下面的语句将pt(而不是 *p)的值设置为&mun:

int num = 3 ;
int *p = &num ;

下面的程序示例演示了将指针初始化为一个地址:

#include<iostream>
using namespace std;
int main(){
   int num = 3 ;
   int *p = &num ;
   cout << "num = " << num;
   cout << "; 变量num的地址为:" << &num << endl;
   cout << "*p = " << *p ;
   cout << ";  p = " << p;
   return 0;
}

输出结果:

num = 3; 变量num的地址为:0x70fe04
*p = 3; p = 0x70fe04

从中可知,程序将p(而不是*p ) 初始化为num的地址。

3.new运算符分配内存

我们知道在C语言中,可以用库函数malloc()来分配内存;在C++中是采用new运算符来分配内存。
下面我们来看一个示例:

int *p = new int ;

new int 告诉程序,需要适合存储 int 的内存。new 运算符根据类型来确定需要多少字节的内存。然后,它找到这样的内存,并返回其地址。接下来,将地址赋给p,p是被声明为指向int的指针。

如果觉得读完之后,觉得有所收获,还请家人们支持一下小编哦哦~。如有问题,欢迎评论区留言。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值