gpt4 book ai didi

c - 将 const 关键字添加到作为参数传递给函数的数组

转载 作者:太空狗 更新时间:2023-10-29 16:33:34 27 4
gpt4 key购买 nike

有什么方法可以添加 const作为参数传递给函数的数组的关键字:

void foo(char arr_arg[])

如果我放置 const之前char ( void foo(const char arr_arg[]) ) 或在 char 之后( void foo(char const arr_arg[]) ),这意味着比 char这是常数,而不是 arr_arg .

我刚刚 read在引擎盖下,作为参数发送给函数的数组表示为指针,因此 void foo(char arr_arg[])void foo(char* ptr_arg)相同.考虑到这一点,我可能会将函数重写为 void foo(char * const ptr_arg)因为这正是我想要实现的目标。

但是我想知道有没有办法把const加起来此声明中的关键字 void foo(char arr_arg[])使其与 void foo(char * const ptr_arg) 相同(不是 void foo(char const * ptr_arg)void foo(const char * ptr_arg) )?

我只是想了解是否有语法来制作arr_arg带数组符号的常量 [] .

最佳答案

在 C 中,您必须将 const 放在 [] 之间,无论这对于没有准备的人来说可能看起来很奇怪

void foo(char arr_arg[const]);

这是"new"C99-specific syntax .在 C89/90 或 C++ 中,无法使用“数组”语法来实现,因此您必须切换到等效的“指针”语法,如 David 的回答中所建议的那样。

关于c - 将 const 关键字添加到作为参数传递给函数的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10921538/

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