函数声明:void DES(int *str,int key); 主函数中调用函数:DES(str,key); 已知主函数中str和key都是为大小为64的int数组 报错:'function' : 'int ' differs in levels of indirection from 'int [64]' 可能是什么原因?
时间: 2024-03-24 07:37:19 浏览: 66
C语言中函数声明与调用问题
这个错误提示表明你在函数调用时传递的参数类型与函数声明中的参数类型不匹配。
根据你提供的信息,str 和 key 都是大小为 64 的 int 数组,而函数声明中的 str 参数是一个指向 int 类型的指针,而不是一个 int 数组。因此,在函数调用时,你需要将数组名转换为指针类型,然后将该指针传递给函数。
正确的函数调用应该是这样的:
```
DES(&str[0], key);
```
其中 &str[0] 表示 str 数组的第一个元素的地址,它是一个指向 int 类型的指针,可以作为函数的第一个参数传递。key 是一个 int 类型的值,表示 DES 加密算法的密钥。
如果你需要在函数内部访问整个 str 数组,可以在函数内部使用指针运算符来访问它。例如,可以使用 *(str+i) 来访问数组的第 i 个元素。
阅读全文