加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 将双指针作为参数传递

发布时间:2020-12-16 10:51:36 所属栏目:百科 来源:网络整理
导读:我想用双指针.但是,请告诉我这里做错了什么.调用函数后,值n不会更新.我期待30但仍然看到10. int main(int argc,char **argv) { int n = 10; int *ptr = n; int **ptr2ptr = ptr; function(ptr2ptr); printf("%d",n); return 0;}void function(int *num) { *n
我想用双指针.但是,请告诉我这里做错了什么.调用函数后,值n不会更新.我期待30但仍然看到10.

int main(int argc,char **argv) {
    int n = 10;
    int *ptr = &n;
    int **ptr2ptr = &ptr;
    function(&ptr2ptr);
    printf("%d",n);
    return 0;
}

void function(int *num) {
    *num = 30; 
}

解决方法

您实际上是将三重间接整数传递给函数函数. & ptr2ptr是指向整数指针的指针的地址.在从main调用之前,您没有定义也没有声明函数.它在C99中是不正确的,但在ANSI C中受支持并隐式声明函数以获取任何类型的任意数量的参数并返回int.您应该在main之前移动函数的定义并将其更改为:

void function(int ***num) {
    ***num = 30; 
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读