【问题标题】:Argument name in function prototype函数原型中的参数名称
【发布时间】:2014-07-27 18:25:35
【问题描述】:

在函数声明中,需要三件事,即 返回值类型。函数名称。 (参数类型)。 但参数名称不是必需的。那么为什么这个程序会产生错误,当我从函数原型(void readMatrix(int arr[][maxCols] );)中删除参数名称(arr[][maxCols])时

简单来说。

void readMatrix(int arr[][maxCols] );    // fine and no error.

void readMatrix(int);                    // but this generates error when argument name is not mentioned in function prototype.

【问题讨论】:

  • 错误信息是什么意思?
  • 你摆脱的不仅仅是名字。
  • 16 13 D:\DATADATA\myprogs2\Untitled1.cpp [错误] 从 'int (*)[3]' 到 'int' 的无效转换 [-fpermissive]
  • 10 6 D:\DATADATA\myprogs2\Untitled1.cpp [错误] 初始化 'void readMatrix(int)' 的参数 1 [-fpermissive]

标签: c++ c dev-c++


【解决方案1】:

因为[][maxCols]不属于名称而是属于类型。

对于没有名字的声明,写:

void f(int [][maxCols])

原始数组通常是一个糟糕的选择。使用std::vectorstd::array

【讨论】:

  • std::vector?如果他使用 c 怎么办?
  • 你说得对,我错过了 C 标签。但我有一种强烈的感觉,作者根本不知道这是两种不同的语言。
猜你喜欢
  • 1970-01-01
  • 2011-12-31
  • 2012-10-25
  • 2016-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-28
相关资源
最近更新 更多