在不传递指针的情况下修改函数的参数

我只是在阅读GMP(bignum库)文档它似乎能够修改函数的参数。例如,初始化整数的操作如下:

mpz_t integer;
mpz_init(integer);
// ... Do some stuff
mpz_clear(integer);

mpz_init为整数分配内存,mpz_clear将其释放。如果必须传递指针,则可以修改函数参数(mpz_init(&integer)),但似乎无需传递指针也可以。这是如何运作的?

吊床

引用此来源

出于兴趣,GMP类型mpz_t等被实现为某些结构的单元素数组。这就是为什么声明变量会创建具有GMP需要的字段的对象,然后将其用作参数将指针传递给该对象的原因

mpz_tgmp.h文件中定义

typedef struct
{
    //struct body
} __mpz_struct;

typedef __mpz_struct mpz_t[1];  

因此,基本上mpz_t类型是数组(结构)类型。请记住,数组在传递给函数时会衰减到指向其第一个元素的指针。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在不键入每个成员的情况下将struct传递给函数(C ++没有指针)

如何在不指定类型的情况下修改函数输入参数?

您可以在不传递参数的情况下从tk.OptionMenu的命令参数调用函数吗

spring如何在不传递参数的情况下实例化@Autowired构造函数

如何在不展开包装的情况下将ref传递给方法/函数参数?

如何在不访问Java母函数的情况下将参数传递给回调

如何在不使用C ++创建函数对象的情况下将函数指针作为模板值参数传递?

在不传递参数的情况下创建新对象

在不传递所有权的情况下重新分配函数中的智能指针?

函数在不传递参数的情况下工作

是否可以在不传递参数的情况下调用函数?

在不传递参数的情况下在函数中使用变量

如何在不牺牲性能的情况下将函数作为参数传递给Julia中的其他函数?

C编程,在不传递大小作为参数的情况下更改函数中的字符串值

如何在不创建新函数的情况下将参数传递给React + Typescript中的回调?

如何在不更改上下文的情况下将参数数组传递给函数?

如何在不丢失“ event”属性的情况下将参数传递给事件侦听器的回调函数?

我可以在不传递指针数组的情况下启动协作内核吗?

在C ++中,我可以在不局部声明结构的情况下将其作为指针传递吗?

在没有辅助函数的情况下转换函数指针参数

如何在不传递用户名和传递url参数的情况下获取令牌?

在不扩展类C ++的情况下修改虚拟方法参数值

C ++:如何在不执行功能的情况下将参数作为参数传递?

如何在不使用C的指针的情况下通过函数传递2D数组

如何在不指定模板的情况下声明函数模板指针typedef?

默认情况下,如何使函数指针参数为no-op?

如何在不调用函数的情况下将参数传递给函数?

在不传入内部函数的情况下访问外部函数参数

如何在不更改路由的情况下将参数从视图传递到控制器