我在哪里声明x和y来让这个c代码工作?
我有:我在哪里声明x和y来让这个c代码工作?,c,undeclared-identifier,C,Undeclared Identifier,我有: #包括 整数和(整数x,整数y); 主要() { 积分=和(10,11); printf(“%i和%i之和为:%i\n”,x,y,theSum); } 整数和(整数x,整数y) { 返回x+y; } 然而,当我编译和运行它时,它说x和y是未声明的?非常感谢您的帮助。谢谢您必须在main中声明x和y,这样您就可以调用sum(x,y),而不是在两个文本上调用它。目前,x和y仅在函数sum中定义。您必须在main中声明x和y,以便调用sum(x,y),而不是在两个文本上调用它。目前,x和y仅
#包括
整数和(整数x,整数y);
主要()
{
积分=和(10,11);
printf(“%i和%i之和为:%i\n”,x,y,theSum);
}
整数和(整数x,整数y)
{
返回x+y;
}
然而,当我编译和运行它时,它说x和y是未声明的?非常感谢您的帮助。谢谢您必须在main中声明x和y,这样您就可以调用sum(x,y),而不是在两个文本上调用它。目前,x和y仅在函数sum中定义。您必须在main中声明x和y,以便调用sum(x,y),而不是在两个文本上调用它。目前,x和y仅在函数sum中定义。x和y变量仅作为参数传递给函数。您将无法引用主函数中的那些。如果你想,它会是这样的:
#include <stdio.h>
int sum ( int x, int y );
main ()
{
int theSum = sum (10, 11);
printf ( "Sum of %i and %i is: %i\n", x, y, theSum );
}
int sum ( int x, int y )
{
return x + y;
}
#包括
整数和(整数x,整数y);
主要()
{
int x=10;
int y=11;
积分=和(x,y);
printf(“%i和%i之和为:%i\n”,x,y,theSum);
}
整数和(整数x,整数y)
{
返回x+y;
}
这应该行得通。我希望这有帮助 x和y变量仅作为参数传递给函数。您将无法引用主函数中的那些。如果你想,它会是这样的:
#include <stdio.h>
int sum ( int x, int y );
main ()
{
int theSum = sum (10, 11);
printf ( "Sum of %i and %i is: %i\n", x, y, theSum );
}
int sum ( int x, int y )
{
return x + y;
}
#包括
整数和(整数x,整数y);
主要()
{
int x=10;
int y=11;
积分=和(x,y);
printf(“%i和%i之和为:%i\n”,x,y,theSum);
}
整数和(整数x,整数y)
{
返回x+y;
}
这应该行得通。我希望这有帮助 在调用sum之前声明x和y:
#include <stdio.h>
int sum ( int x, int y );
main ()
{
int x = 10;
int y = 11;
int theSum = sum (x, y);
printf ( "Sum of %i and %i is: %i\n", x, y, theSum );
}
int sum ( int x, int y )
{
return x + y;
}
在调用sum之前声明x和y:
#include <stdio.h>
int sum ( int x, int y );
main ()
{
int x = 10;
int y = 11;
int theSum = sum (x, y);
printf ( "Sum of %i and %i is: %i\n", x, y, theSum );
}
int sum ( int x, int y )
{
return x + y;
}
在
main
中,您既没有声明x
也没有声明y
——您只是传入了文本值10和11。在sum
方法的范围之外,两个名称都没有任何含义。快速修复:
main ()
{
int x = 10;
int y = 11;
int theSum = sum (x, y);
printf ( "Sum of %i and %i is: %i\n", x, y, theSum );
}
在
main
中,您既没有声明x
也没有声明y
——您只是传入了文本值10和11。在sum
方法的范围之外,两个名称都没有任何含义。快速修复:
main ()
{
int x = 10;
int y = 11;
int theSum = sum (x, y);
printf ( "Sum of %i and %i is: %i\n", x, y, theSum );
}
在第三行中,您只需声明一个函数
sum
,它包含两个参数,都是整数,分别称为x
和y
。您还没有声明任何变量。这些参数只能在函数本身内部引用。下面是一个简化,这将在这个阶段帮助您,但您应该尝试阅读一本基本的编程书。Kernighan和Ritchie的“C编程语言”是一个很好的起点
变量是按名称引用的内存块。在程序的生命周期中,它们可以接受任何值(它们的类型),因此被称为“变量”。必须在使用前声明;您可以通过告诉编译器它们的类型和名称来实现这一点inta
的意思是“为我保留一块足以容纳任何整数的内存,稍后让我用名称a
”来引用它。”。您可以为它赋值:a=10
,您可以使用它:a+20
您需要了解参数和变量之间的差异,才能了解这里的情况。函数的参数基本上是仅在函数生命周期内存在的变量。这是你的总和
:
main()
{
int x = 10;
int y = 11;
int theSum = sum(x, y);
// etc.
请注意,顶行看起来就像一个变量声明intx
。那是因为它是x
和y
是可以在函数中使用的变量
通过传入值调用sum
。实际上,编译器用传入的值替换函数中的x
和y
。在您的情况下,您传递的是文本:10和11。当程序调用sum
时,参数x
和y
的值为10和11,因此返回值变为return 10+11代码>当然是21
请记住,参数x
和y
仅存在于该函数中。您只能在您的职能范围内引用它们。为什么?因为每对花括号{
和}
定义了一个范围,在该范围内声明的任何内容都只能在该范围内使用。这包括变量和参数
这里有一个更完整的例子。我更改了字母,以便您可以看到使用变量和参数的不同方式:
int sum(int x, int y) {
return x + y;
}
#包括
整数和(整数x,整数y);
主要()
{
/*我们声明我们的变量*/
INTA;
int b;
/*我们给它们赋值*/
a=10;
b=11;
/*我们将它们作为参数传递给求和函数*/
积分=和(a,b);
/*我们再次使用它们作为参数,调用printf函数*/
printf(“%i和%i之和为:%i\n”,a,b,theSum);
}
整数和(整数x,整数y)
{
返回x+y;
}
在第三行中,您只需声明一个函数sum
,它包含两个参数,都是整数,分别称为x
和y
。您还没有声明任何变量。这些参数只能在函数本身内部引用。下面是一个简化,这将在这个阶段帮助您,但您应该尝试阅读一本基本的编程书。Kernighan和Ritchie的“C编程语言”是一个很好的起点
变量是按名称引用的内存块。在程序的生命周期中,它们可以接受任何值(它们的类型),因此被称为“变量”。必须在使用前声明;您可以通过告诉编译器它们的类型和名称来实现这一点inta
的意思是“为我保留一块足以容纳任何整数的内存,稍后让我用名称a
”来引用它。”。您可以给它赋值:a=10