c++ - 使用指针在数组中首次出现元素 (C++)

标签 c++ pointers

int findFirst(const string a[], int n, string target)
 {
 for (int i = 0; i < n; i++)
 if (a[i] == target)
 return i;
return -1;
} 

如何在不使用方括号和使用以下函数头的情况下编写上述程序?

int findFirst(const string* a, int n, string target)

最佳答案

你可以简单地替换函数头; const string a[] 已经是一个指针参数,和const string* a 完全一样。

然后,您可以取消引用 a + i

for (int i = 0; i < n; i++)
    if (*(a + i) == target)

或将 ai

一起递增
for (int i = 0; i < n; i++, a++)
    if (*a == target)

或者你可以只使用指针

for (const string* p = a; p < a + n; p++)
    if (*p == target)

关于c++ - 使用指针在数组中首次出现元素 (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47492697/

相关文章:

pointers - F# 是否有地址 & 和指针取消引用 * 函数?

c# - 有没有办法知道是什么让对象在 C# 中保持事件状态

c# - 奇怪的引用行为(与 int 相同的内存地址)

c++ - 指针指向 vector 中的 NULL

c++ - printf() 在源代码中不起作用?

c++ - 使用特定颜色opencv填充图像中的形状

c++ - C++ 享元模式

c++ - 无法调用dll文件中的线程

c++ - double、long double、float 和 float128 的比较?

c++ - 指针算术符号