为什么c语言中明明已经定义了还会出现error C2065: ✀k✀ : undeclared identifier?求解

2024-11-29 16:23:57
推荐回答(3个)
回答1:

你的主函数最后少了一个括号。。。我晕。。。还有创建函磨旁数缺派与定义的函数的类型不同 一个是VOID 一个是INT的。。。。这是优瞎扮橡点错误的 ~~嘿嘿

#include
int sort(int a[],int n);
int main(void)
{
int i, n;
int repeat, ri;
int a[10];

scanf("%d", &repeat);
for(ri = 1; ri <= repeat; ri++){
scanf("%d", &n);
for(i = 0; i < n; i++)
scanf("%d", &a[i]);
sort(a,n);
printf("After sorted: ");
for(i = 0; i < n; i++)
printf("%d ", a[i]);
printf("\n");
}
}
int sort(int a[],int n)
{int i,k=0;
for(i=0;i if(a[i]>a[i+1]){
k=a[i];
a[i]=a[i+1];
a[i+1]=k;}}
return 0;}

回答2:

我这边调试的时候没有出现你说的K变量没有声明的错误。。
只是有一个问题就碰脊乱是。你在声明sort()函野含数的时候声明的返回值是void类型的。但是你后面实现或定义的时候是int返回值类型的。。这样就有问题的。。
还有就是主函数里面的for循环笑档里面差一个右大括号的。

回答3:

按照编译原理来说,C语言中定义的变量都会在对应的符号表中存储相应标记,如果有相同的变量敬蠢定义亮皮陪,那么这个重复的变量就不能再申请符号表里的存储空间,此时编译器就会报错的。这也是考虑到程序的容易理解。握漏个人的理解