C 以下代码的输出是什么? main() { inta[]={2,4,6,8,10}; int i; 更改(a,5); 对于(i=0;i
您不能在C中嵌套函数。请将C 以下代码的输出是什么? main() { inta[]={2,4,6,8,10}; int i; 更改(a,5); 对于(i=0;i,c,compiler-errors,output,C,Compiler Errors,Output,您不能在C中嵌套函数。请将change函数的定义移到main函数之外 现代C还要求您在函数声明中指定返回类型,例如,intmain(void),voidchange(int*b,intn) EDIT:问题已被编辑,现在change函数不再嵌套。现在,OP需要在main函数之前为change声明函数。理想情况下,您不应该在main()中定义函数。但是,如果这样做,请先定义它,然后再使用它。 另外,change函数的返回类型应为void,因为此函数不返回任何内容,如果未指定返回类型,则默认为int
change
函数的定义移到main
函数之外
现代C还要求您在函数声明中指定返回类型,例如,intmain(void)
,voidchange(int*b,intn)
EDIT:问题已被编辑,现在
change
函数不再嵌套。现在,OP需要在main
函数之前为change
声明函数。理想情况下,您不应该在main()
中定义函数。但是,如果这样做,请先定义它,然后再使用它。
另外,change
函数的返回类型应为void
,因为此函数不返回任何内容,如果未指定返回类型,则默认为int
将
Change(int*b,int n)
更改为void Change(int*b,int n)
您的代码应该是这样的:这里您只需向数组a
的每个值添加5。这里a
是引用类型,因此在外部进行的任何更改都将反映原始值的含义
main()
{
int a[ ] = { 2, 4, 6, 8, 10 } ;
int i ;
change (a, 5 ) ;
for ( i = 0 ; i <= 4 ; i++ )
{
printf( "\n%d", a[i] ) ;
}
}
change ( int *b, int n )
{
int i ;
for ( i = 0 ; i < n ; i++ )
*( b + i ) = *( b + i ) + 5 ;
}
另外,它需要在
main
之前声明。当有答案时,请不要用不同的问题来更改您的问题。这会让人觉得答案与您的问题完全无关。对不起,先生,我以后会记下这一点。您为什么更改原始帖子?现在您已经更改了上下文。
#include<stdio.h>
int change ( int *b, int n )
{
int i ;
for ( i = 0 ; i < n ; i++ )
*( b + i ) = *( b + i ) + 5 ;
}
int main()
{
int a[ ] = { 2, 4, 6, 8, 10 } ;
int i ;
change (a, 5 ) ;
for ( i = 0 ; i <= 4 ; i++ )
{
printf( "\n%d", a[i] ) ;
}
}
7
9
11
13
15