C语言 指针算术难吗?



我记得当我刚开始学习C时,有人告诉我"指针运算很难"。我不太明白这有什么难的?

arr[i] == *(arr + i)
*ptr = arr[2] then *ptr + 1 = arr[3]

这真的是它的全部吗,因为这两个概念都没有我想象的那么难吗?

好吧,如果你的意思是*(ptr + 1) = arr[3]的最后一个,那么似乎你有它的窍门。为指针替换下标操作符([]):

arr[3] === *(arr + 3)

不是很难。棘手的是,当指针指向数组中间时,你必须记住它们在数组中的位置,这样你就知道要索引什么了。因此,如果ptr1指向数组的开头,ptr2指向索引3,那么 *(ptr1 + 4) *(ptr2 + 1)各自产生相同的值。此外,如果数组中间有指针,可以下标负数,这在Java等高级语言中是不允许的。所以,是的,它可以变得尽可能复杂

相关内容

  • 没有找到相关文章

最新更新