【发布时间】:2021-06-20 12:16:58
【问题描述】:
我是 C 和 C++ 的新手。我已经定义了一个具有指针'ptr'的静态函数。如何访问函数外的指针?
#include <iostream>
using namespace std;
static void accessArr(uint8_t arr[]);
int main()
{
uint8_t arr[] = {1,2,3,4,5};
accessArr(arr);
cout << *ptr <<endl;
return 0;
}
void accessArr(uint8_t arr[])
{
uint8_t *ptr = arr;
}
我收到上述代码的以下错误。请帮助解决错误。
main.cpp:12:14: error: ‘ptr’ was not declared in this scope
cout << *ptr <<endl;
^~~
【问题讨论】:
-
cout << arr[0] <<endl;?不清楚为什么要使用另一个函数的本地变量。 -
函数内部的局部变量无论如何都是局部变量。它们的作用域和生命周期对于统计函数和非静态函数都遵循相同的规则。
-
@churill 不,我想使用指针'ptr'打印'arr'数组的第一个元素
-
您不能这样做,因为
ptr是accessArr的局部变量。解决方法是从accessArr调用某些函数,传递指向ptr的指针或引用。 -
C++ 不是这样工作的。函数变量始终只能从函数内部访问。
标签: c++ arrays function pointers