'num1'未在此范围内声明
'num1' was not declared in this scope
#include <cmath>
using namespace std;
int answer;
int cube (int num1)
{
answer = num1 * num1 * num1;
return answer;
}
int main()
{
cout << "enter your number to cube";
cin >> num1;
cube(num1);
return 0;
}
对编码非常陌生,经验不到一天,谁能告诉我我做错了什么?
错误消息'num1' was not declared in this scope
表示您尝试使用的变量在您尝试使用它的地方不存在。
您尚未声明num1
. 你需要在你的主函数中像这样声明它。
int main()
{
cout << "enter your number to cube";
int num1 = 0;
cin >> num1;
cube(num1);
return 0;
}
C++有一个叫做scope的概念。
num1
是在cube
范围内宣布的,但不是在main
范围内宣布的。从本质上讲,这意味着,名称num1
在cube
中具有含义,因为您在那里声明了变量,但由于该名称的范围仅限于cube
函数,因此当您尝试在main
中引用它时,该名称未定义。
这篇文章对这里讨论的一些概念进行了初学者友好的介绍
范围是指变量的可见性,这意味着程序的哪些部分可以看到或使用它。 变量"answerswer"具有全局范围。全局范围内的变量可以在程序中的任何位置使用。这就是为什么您可以在函数立方体中使用变量答案的原因。 但是变量 num1 是在函数立方体中声明的。因此,它具有函数多维数据集的本地范围。因此,变量 num1 在函数立方体之外不存在,对于函数主函数,不存在名称为 num1 的变量。这就是您收到错误"num1"未在此范围内声明的原因。要消除此错误,请在首次使用之前在 main 范围内声明"num1"。
您尝试将用户的输入存储到num1
中,但尚未声明num1
。(在谷歌中查找错误消息应该已经为您提供了足够的信息(
int num1;
cin >> num1;
完整代码工作:
#include <cmath>
using namespace std;
int answer;
int cube (int num1)
{
answer = num1 *num1*num1;
return answer;
}
int main()
{
int num1;
cout << "enter your number to cube";
cin >> num1;
cube(num1);
return 0;
}
如果你想读取一个输入作为变量存储,你需要首先像下面这样声明它。
int num1;
cin >> num1;
第一行告诉计算机你想要一些空间来存储变量,然后可以通过调用 cin 将输入存储在其中。
还有一件事,不好用using namespace std
,会引起很多奇怪的问题。我建议你学习一些关于操作系统的知识,这对编程非常有帮助。
- 错误:未在此范围内声明'reverse'
- 错误:"imread"未在此范围内声明
- 未在此范围内声明错误 'xy'
- Socklen_t未在此范围内声明
- 错误:'[' 之前预期的非限定 id 和错误:'users'未在此范围内声明
- "Main"已在当前范围内声明
- c++ 变量在宏的扩展中没有在这个范围内声明
- C++ 在编译过程中 strtok 函数 Eclipse 说没有在范围内声明?
- 'num1'未在此范围内声明
- 如何找到在本地范围内声明的变量的地址?
- NT状态未在此范围内声明
- 变量未在此范围内声明 数组线性搜索
- 包含文件中的 Typdef "未在此范围内声明"
- 'ClassName'和'ClassInstance'未在此范围内声明
- C++ 中的类之间的数据重新循环 - 错误:'<class name>'未在此范围内声明
- 代码作为 C 文件工作,但不作为C++文件,错误:'__builtin_types_compatible_p'未在此范围内声明
- 如何修复错误:"vreinterpretq_u32_f64"未在此范围内声明 - 在Android上使用Eigen构建
- 如何修复C++中的"arrStud未在此范围内声明"错误
- 错误:"SHGetKnownFolderPath"未在此范围内声明
- 错误:'Sprite'未在此范围内声明