0

我们在我的 C++ 类中编写了以下递归函数。

bool contains(int arr[], int n, int val){
  if(n == 0) return false;          // Escape clause
  if(arr[0] == val) return true;  // Second escape clause
  return contains(arr+1, n-1, val);
}

我的教授说 C/C++/Assembler 是唯一支持这种数组遍历的主流语言。还有哪些其他语言允许通过更改指针地址进行这种搜索?

4

1 回答 1

2

所有支持数组数字索引的语言都适用于这种通用算法。它与指针操作无关。

指针操作通常用于 C 中基于字符串的算法。例如,可以strlen按如下方式实现。

size_t strlen(char* pValue) {
  char* pStart = pValue;
  while (*pValue != '\0') {
    pValue++;
  }
  return pValue - pStart;
}

char[]此代码在 a或char*输入上同样适用。这种类型的指针操作确实仅限于以这种方式公开指针和公开数组的语言。

不过,这不仅限于 C/C++/Assembler。也可以用 C# 来完成

于 2012-04-23T18:47:15.813 回答