c - 如何将数组传递给无法修改它的函数?

标签 c arrays pointers constants

我正在用 C 编程,我想将一个数组传递给一个函数;此函数不能修改数组的元素。函数参数的正确语法是什么?

void func(const Foo array_in[])

或者
void func(Foo const array_in[])

或者他们是一样的?
谢谢你。

最佳答案

您应该使用 指向常量的指针 为了处理:

#include<stdio.h>

void fun(const int *ptr)//pointer to constant - array boils down to pointer when passed to function
{
    ptr[0]=9;        //ERROR: Read-Only
}

int main(void)
{
    int arr[]={1,2,3,4};

    fun(arr);
    return 0;    
}

注意:不要将其与 混淆常量指针

关于c - 如何将数组传递给无法修改它的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60259258/

相关文章:

c - 作为指针传递时结构不保留数据

python - 如何使用loadtxt在python中的同一个数组中加载多个文件?

c - 在 C 中取消引用动态数组中的指针

C++ 删除指向动态分配对象的指针

c - 堆栈帧组装 - 堆栈上的缓冲区/垃圾空间和参数位置 - Ubuntu x64

C 错误 : expected expression before '||' token

c++ - 类指针成员和异常处理

C 指针 - 指向同一地址

c - 循环错误,程序停止并显示 "INPUT NOT VALID!!"但再次要求输入?

arrays - 在 D 函数中接收 ... 的数组数组?