我试图显示我在程序中指定的数字,但收到以下错误:
main.c(23):错误 #2048:未声明的标识符“编号”。
#include <stdio.h>
int main()
{
{
int number = 32 ;
}
printf("integer is %d \n", number );
return 0;
}
我知道这个问题的解决方案对某些用户来说必须非常简单,但是我正在按照书中的说明进行操作,据我所知,我正在信守承诺。
请任何帮助将不胜感激。
我试图显示我在程序中指定的数字,但收到以下错误:
main.c(23):错误 #2048:未声明的标识符“编号”。
#include <stdio.h>
int main()
{
{
int number = 32 ;
}
printf("integer is %d \n", number );
return 0;
}
我知道这个问题的解决方案对某些用户来说必须非常简单,但是我正在按照书中的说明进行操作,据我所知,我正在信守承诺。
请任何帮助将不胜感激。
C中的大括号{}用于引入一个块,该块是它自己的范围,在该块中声明的变量对该块是本地的,并且在其中嵌套了块。
当您number在自己的块中声明时,该变量仅在该块中声明,而不是在外部块中。所以解决方法很简单:去掉大括号,把变量放在外块里:
int main()
{
int number = 32 ;
printf("integer is %d \n", number );
return 0;
}
您的问题是范围界定:
int main()
{
{
int number = 32 ; <== Number enters scope here
} <== Number leaves scope here
printf("integer is %d \n", number ); <== Number is out of scope scope here
return 0;
}
括号内发生的事情,保持在括号内。
(weeeell,这听起来比“范围界定的第一条规则是你不要谈论范围界定”;-)
的声明number用花括号括在它自己的块中,因此仅在此块中具有范围,因此尝试在该块之外访问它会产生错误。解决方案是将声明移到该块之外(删除它周围的额外花括号),
请缩进你的代码。您声明并初始化了一个仅存在于大括号中的整数变量。因此,当到达 printf 指令时,“数字”被破坏并且不存在。
以下代码按您的预期工作:
int main()
{
int number = 32 ;
printf("integer is %d \n", number );
return 0;
}