指向数据对象的指针

什么是数据对象?

(1)是内存中一段定长的、以Byte为基本单位的连续区域
(2)这段内存区域中的内容表示具有某种类型的一个数据

注:数据对象的类型不一定是简单数据类型(int,long,double等),
也可以是派生类型,比如数组,甚至指针等。
当说到某个指针指向”i“时,其确切含义是指向”i“所占据内存的整体。
eg.指向Int类型数据的确切含义是指向一块大小为 sizeof(int ) 的内存空间。

一元"&"运算

1、
作为二元运算符&是按位与运算。
作为一元运算符时,要求它的运算对象时一个左值表达式(一块内存),
得到的是指向这块内存(类型)的指针。

&d 是个指针,指向一块内存。
&d的值是”d“所占据内存单元中的第一个byte的编号。

%d就是一个既不可以通过代码被赋值,也不可以通过代码被改变的值,因而是常量,叫做指针常量

2、 指针类型数据的输出格式是 ”%p“

在这里插入图片描述
在表达式&d中d表示的仅仅是变量所在的内存,并不表示这块内存的值。

定义指针变量

int *p;

指针的赋值运算

int *p;
int i;
p=&i;   //&i是一个指向int 类型数据的指针常量,p是指向int 类型的指针变量

注:对指针赋值的一般原则:应该同样类型的指针进行赋值。例如下面不对,尽管有些编译器能容忍的

double d;
long * p;
p=&d;

*指针运算符

运算符叫做间接引用运算符,其运算对象是一个指针,运算结果是指针所指向的那块内存(左值)或那块内存中的数据(右值)
*&和 *** 运算符的含义中得知:
对于任何一个变量a, * &a就是a,可以作为左值也可以作为右值使用。
反过来对于任何一个指针 p,只要p 指向一个变量,那么& * p就是p

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值