指针不是变量

C语言中为了表示指向某个类型对象地址这一概念,特别推出了“指针”这个名词

为此也引申出了几个容易混淆的概念:指针类型,指针变量,指针值

就像为了表示不同整数,推出其中一种int的概念,如下

int a=1

int表示这个整数的类型

a是1这个整数对象取的标识符,我们也称其为int类型变量

1是这个整数对象的值

我们会说  声明一个int类型的变量a,并且初始化为1。

对于指针也一样

int* p=&a;

int* 表示int* 这种指针类型

p是&a的标识符,我们称其为int*类型的变量

&a是这个指针对象的值

因此直接说指针是一种变量是一种不准确的说法。

当然当我们熟悉了指针以后,为了方便起见,我们可以称p是指针。

那么&a是地址吗?

这也是一种不准确的说法

地址就是一个数值概念,譬如我们说地址00001,但是只是00001是无法确定是int对象的地址又或者其他类型对象的地址,而&a恰恰是能表示出它是a对象的地址,它是int*类型的。因此&a返回的就是一个指针(指针对象值)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值