c语言中int*类型的指针为什么解引用后变成int类型

文章介绍了C语言中指针解引用的概念,指针解引用后会变为指向的整数变量,而非内存地址。通过解引用可以读取或修改指针所指向的值,但如果不解引用,仅操作指针本身不会影响其所指向的值。当指针指向数组时,解引用则指向数组的第一个元素。
摘要由CSDN通过智能技术生成

  在C语言中,int*类型的指针在解引用后会变成int类型,这是因为指针本身是一个指向整数的指针,当解引用后,指针指向的内存地址中存储的是整数的内存地址,因此解引用后指针指向的是一个整数的变量。

  当你解引用一个int*类型的指针时,实际上是将该指针所指向的地址中的值解引用了,解引用后指针指向的是一个整数的变量,因此该指针所指向的地址中存储的值也会被修改为该变量的值,解引用的值。如果不进行解引用操作,该地址中的值是指针所指向的地址,不会被修改,而且该指针所指向的变量也不会被修改。

  如果不想改变指针所指向的地址中存储的值,可以使用指针解引用操作符*来获取指针所指向的变量的值,而不是修改指针本身。例如:

int* ptr = &var;  // 将指针ptr指向变量var的地址  
int value = *ptr;    // 获取变量var的值

  如果想要修改指针所指向的地址中存储的值,可以使用指针解引用操作符*来获取指针所指向的地址,并将其赋值为另一个值,例如:

int* ptr = &var;  // 将指针ptr指向变量var的地址  
int value = *ptr;    // 将指针ptr所指向的地址赋值为另一个值  
*ptr = value;        // 修改指针ptr所指向的地址中的值

  需要注意的是,如果指针指向的是一个数组的首地址,解引用后指针指向的是该数组的第一个元素,而不是数组本身。因此,在解引用数组首地址时,需要特别小心,以免访问非法内存。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值