指针和整数之间的区别以及不能隐式混用解释说明

首先,指针是一个特殊的数据类型,它存储了一个内存地址,指向其他实体。它不是一个整数,虽然可以将指针的值打印为一个整数表示。因此,问一个int指向什么是不正确的,因为只有指针才能指向其他实体。

其次,指针类型提供了一些适用于地址的操作,如取地址(&)、解引用(*)等。而整数类型int提供了适用于整数的算术和逻辑操作。这意味着指针和整数之间的操作是不同的,不能混用。

举例来说,如果将一个指针赋值给int变量,即将指针的值赋给一个整数,这是不合法的。因为指针和整数是不同的类型,不能隐式地进行类型转换。类似地,如果将一个整数赋给指针变量,也是不合法的。

例如,假设有以下代码:

int* pi; // 声明一个指向整数的指针
int i = 7; // 声明一个整数变量并赋值为7

pi = &i; // 将i的地址赋给pi,是合法的操作
int j = *pi; // 解引用pi并将其值赋给j,也是合法的操作

int k = pi; // 将指针pi的值赋给整数k,是不合法的操作
pi = 7; // 将整数7赋给指针pi,也是不合法的操作

在上面的例子中,将i的地址赋给指针pi是合法的,因为指针可以指向其他实体。而将指针的值赋给整数k是不合法的,因为指针类型和整数类型不同。同样,将整数7赋给指针pi也是不合法的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值