You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

学习冒泡排序时遇表达式*x = *x +1,是给x的地址还是值加1?

关于表达式*x = *x + 1的解释

视频里的说法是正确的,这个表达式的作用是给指针x指向的变量的值加1,而非修改x本身存储的地址。

核心概念区分:

  • *x是解引用操作符:它的作用是访问指针x所存储的内存地址对应的变量值,而不是操作指针x自身的地址。
  • 如果要给x的地址(即指针变量x存储的地址值)加1,写法应该是x = x + 1或x++,这时候才会让指针x指向内存中偏移一个数据类型长度的位置(比如int*指针会偏移4字节,具体取决于系统和数据类型)。

实际代码示例:

int num = 5;
int *x = # // x存储的是num的内存地址

*x = *x + 1; // 解引用x,获取num的值(5),加1后赋值回num
// 执行后,num的值变为6,x存储的地址仍然是&num,没有变化

// 如果是修改指针地址的操作
x = x + 1; // x现在指向num之后的内存地址,不再指向num

内容的提问来源于stack exchange,提问作者Sir-LaughALot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 09:50:54