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; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |