gpt4 book ai didi

c - C 中指针递增的方法有很多种,有什么区别?

转载 作者:行者123 更新时间:2023-11-30 18:39:09 24 4
gpt4 key购买 nike

我正在学习 C,并试图弄清楚如何在实例化时增加指针: int A[] = {111, 222, 333}; int *q = A; 然后我尝试将指针 qA 的零索引增加到下一个索引。

我写了两个函数:

void incr_ptr_single ( int *p ) {
*&p = *&p + 1;
}

void incr_ptr_double ( int **h ) {
*h = *h + 1;
}

我明白这句话 void incr_ptr( int *p) { p = p+1; } inc_ptr(q); 没有做我想要的事情,因为 C 的函数是“按值传递”。

目前,incr_ptr_double(&q) == A[1],但incr_ptr_single(q) == A[0]。我想知道如何修复 incr_ptr_single 函数,使其行为类似于 incr_ptr_double

最佳答案

一种“修复”方法incr_ptr_single就是让它返回递增的指针作为函数结果:

int * incr_ptr_single ( int *p ) {
return p + 1;
}

然后您可以将其称为:

q = incr_ptr_single(q);

关于c - C 中指针递增的方法有很多种,有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30863928/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com