你真的知道为什么在自定义的函数里可以直接用nums[X]=XX来修改函数以外数组的值吗?

这篇博客探讨了C语言中指针和数组的使用,特别是关于如何通过指针修改数组元素以及对整型变量指针进行加法操作的问题。作者发现*returnSize+=1; 和 returnSize++; 的写法在某些情况下是等价的,但returnSize=returnSize+1; 不会报错。文章通过深入解析指针和数组的关系,帮助读者理解这些操作背后的原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

闲来无事逛leecode时发现了这样一个问题:

*returnSize+=1;

returnSize是题目给的变量

 这里有一个问题,虽然nums和returnSize一个代表数组一个代表整数型变量,但都指向某一个地址,理论上如果要修改指针指向地址的内容,需要在前面加上*号,就像*returnSize,而根据我的经验而言,修改像nums这个指向数组的指针的内容只需要nums[X]=XX(X可以为任一数)就可以了,这是为什么呢,直到看了大佬的一篇文章

C语言 数组中地址加1 理解与举例

我发现其实nums[X]本质上和*(nums+X)是等价的,问题迎刃而解,也就是本来应该写的是

*(nums+X)为了方便变成了nums[X],不过又产生了一个新问题,

*returnSize+=1;

这样是正确的

returnSize=returnSize+1;

这样也是正确的

returnSize++;

唯独这样写就会报错,不明白为什么

最后每日一图~~

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值