c - 如何将数组传递给无法修改它的函数?
问题描述
我正在用 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;
}
注意:不要将它与常量指针混淆
推荐阅读
- javascript - 练习反应式编程
- php - 从正则表达式中得到错误“在偏移量 1 处没有重复的内容”
- ios - 异常没有被捕获
- batch-file - 在 echo 命令的末尾批量附加一些东西
- ruby-on-rails - Mongo 查询不在范围内的数据 - 不在范围内
- c# - 如何以编程方式创建对象标识符
- html - 为什么我的水平导航偏离中心?
- php - 致命错误:未捕获的类型错误:参数 1 传递给 PhpMyAdmin\UserPreferences::apply()
- java - 使用 selenium webdriver 检查来自 www 站点的黄瓜自动验证大型文本文件(日志)的方法
- r - 使用 ggplot2 仅填充堆叠图中的底部堆栈