指针变量如何间接访问另一个变量呢?

指针变量如何间接访问另一个变量呢?,第1张

不对,你这是赋值,不是指向埋团此变量

*p1=a

*p2=b

*p1=6

*p2=12

这些都是非法 *** 作,指针没有初始化,就访问。

正确方法:

int a=5,b=10

int *p1,*p2

p1=&a // p1指向a的或灶地址

p2=&b // p2指向b的地址

*p1=6 // 给p1指向的内容赋值,也就是给a赋值。

*p2=12// 给p2指弯迅向的内容赋值,也就是给b赋值。

这样就实现了用指针变量间接访问另一个变量

一、new

new 是 c++ 的一个关键字。被当作像 +、-、* 、/ 一样的 *** 作符。它的 *** 作结果是在申请到一段指定数据类型大小的内存。

语法: 指针变量 = new 数据类型

new 将做三件事:

1、主动计算指定数据类型需要桥圆仿的内存空间大小;

2、返回正确的指针类型;

3、在分配内存的一,将按照语法规则,初始化所分配的内存。

这是什么意思呢?看看例子吧:

int* p

p = new int

和以往不一样,p 这回不再“寄人篱下”,并不是指向某个已存在的变量,而是直接指向一段由new 分配而来的新内存空间。

“p 指向一段由new 分配而来的新内存空间” 这句话等同于: “new 分配一段新的内存空间,然后将该内存空间的地址存入腔斗到变量p中。” 所以,最终p中仍然是存储了一个变量的地址,只是,这是一个“无名”变量。

指向原有的某个变量,和指向一段新分配的内存空间,有什么区别呢?

“原有的变量”,可以比喻成指向一间原有的,并且有主的房间。而“新分配的内存空间”,则像是一个“临时建筑物”。我们必须在不用它的时候,主动将它拆迁。拆迁的工作由delete来完成。

当指针变量通过 new ,而得到一个内存地址后,我们就可以像以前的所说的,通过该指针,通过*号,而对该内存地址(一个无名的变量),进行 *** 作。

如:敏纤

int* p = new int

*p = 100

cout <<*p <<endl

屏幕将输出100。

二、new时初始化

new 也可以在申请内存空间时,直接设置该段内存里要放点什么.

语法: 指针变量 = new 数据类型(初值)

结构体指针成员所指向变量,这个说法理解起来有点困难。

从字面意思上看断句,有如下几种可能:告旅

首先定义一个包含所有可能情况的哗耐结构体:

struct test

{

int a

int *p

}

struct test t1, *t21

结构体/指针成员/所指向的变量。

结构体中有指针成员,乱友春然后要访问这个结构体成员指向的变量值。

那么可以*(t1.p)这种方式对p取值。

2

结构体指针/成员/所指向变量。

这种情况有两种方法可以访问:

*(t2->p)

或者

*(*(t2).p)

效果是一样的。

3

描述有误,实际为:

结构体指针所指向/成员变量。

同样有两种方法可以使用:

t2->p

或者

(*t2).p


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12506330.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存