【发布时间】:2015-05-19 05:38:20
【问题描述】:
这是一个非常新手的问题,但我注意到一些 C 函数的形式是:
int* foo(int *N){...}
有人可以吗:
a) 解释一下 int* foo 是什么意思?在这样一种功能中,没有
return 声明。
b) 解释 int *N 有多灵活?即,我知道这意味着该参数是一个指向 int 的指针,但根据我从一个这样的函数的理解来看,这意味着函数 foo 实际上可以采用向量参数。这对我来说毫无意义。
【问题讨论】:
-
我开始回答,但我认为 a) 你真的应该学习 C 和/或 C++ 的基础知识。至于 b),这是 C 和 C++ 的危险区域之一:指针可以表示很多不同的东西。您通常可以在 C++ 中使用更好的抽象来避免这种情况(主要是标准库中的用户定义类型。)
-
我学过一些 C 语言,但是看一个特定的程序会引发一些问题。特别是我从没想过“int * N”可能意味着 N* 可能是一个向量参数。这是重点。第一个问题可能是因为给了我错误的代码,但类似的代码中没有返回语句。
-
我有 Kernighan 和 Ritchie 合着的“The C Programming Language”一书。它似乎没有涵盖这种情况。
-
查看第 5 章。所有内容都是关于指针和数组的。
-
好的,所以您知道
int* foo();是一个返回指向int的指针的函数,但您想知道它的真正含义吗?