【C++】第6章:(一)指针概述及基本应用

44 篇文章 0 订阅

访问内存中的数据的两种方式

从内存单元中访问数据的方法有两种:直接访问间接访问

直接访问
通过变量名,直接对变量的存储单元进行存取访问。

定义变量后,该变量名也就成为了相应内存空间的名称,表现在程序语句中就是通过变量名来存取变量内容

间接访问
根据变量的地址进行存取访问

指针变量与指针变量的定义

指针变量是一种特殊的变量,用于存放内存单位中单元的地址,即能存放地址的变量就是指针变量。
定义指针变量:数据类型 *指针变量名;

  • " * "表示该变量为指针变量
  • 指针变量前的数据类型规定了指针变量指向的变量的数据类型

例如:double *p;
定义变量p为指针变量,且指针变量p的值只能是一个double类型变量的地址
在这里插入图片描述
指针变量的三个要素:

  1. 变量名:与一般变量取名相同
  2. 指针变量的类型:指针所指向的变量类型,而不是自身的类型。指针变量本身均为long int类型
  3. 指针变量的值:是某个变量的内存地址

取地址运算符:&

取地址运算符&,是一个一元运算符,用来得到一个变量的地址
例如 int a;
&a表示变量a在内存中的起始地址。&后面必须是一个变量。

指针运算符:*

指针运算符 * 是一个一元运算符,表示指针变量所指向的变量的值(取值)。
注意 * 在不同地方出现的含义是不同的。
如:

 int a=5,b,*p;
 p=&a;  // *p取指针变量p所指向的变量的值
 b=*p;  //(即p所指向的内存单元的内容)等价于b=a;

指针变量的初始化与赋值

指针变量初始化

  1. 在定义时赋值:数据类型 *指针名 =地址
  2. 指针赋值:指针变量=地址;

其中的“地址”可以是变量的地址、数组名等。
例:

int x = 8;
int *p = &x, *q;
q = p;  //同类型的指针变量赋值

注意:用变量地址作为初值时,该变量必须在指针初始化之前定义
指针赋值的注意事项

  1. 不能把常量或者表达式赋给指针变量
    p=&67;p=&(i+5) 是不合法的
  2. 不能讲一个整数赋给指针变量,但可以赋整数值0,0是可以直接赋给指针变量的唯一整数值,表示空地址
    int *p;p=0; // p作为空指针,不指向任何地址
#include<iostream>
using namespace std;
int main ()
{
   double a=15;
   double *pa=&a;
   double *pb;
   pb=pa;
   cout<<pa<<endl;
   cout<<*pa<<endl;
   cout<<pb<<endl;
   return 0;
 }
 
/*运行结果:
0020FC6C
15
0020FC6C
*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值