C语言自定义函数的问题

来源:百度知道 编辑:UC知道 时间:2024/09/23 06:06:10
void k();
main(){
k();
}
void k()
int p = 1;
{
printf("asdasdasdasd");
}
按照primer plus的说法 是正确的 但我编译是通不过的~ 在那里定义p, 是属于什么范围?相当于函数体内的变量-局部变量?
定义在这里 个人感觉应该不是全局变量啊~ 全局变量是必须在函数外 这里我查了书,按照说法不可能局部变量(局部变量必须在函数体内) 但是书上写的,是正确的(我可以确定) 如果这里是个全局变量,为什么我编译了通不过…… 我觉得可能是标准的问题~ 这个可能是以前的写法,然后现在统一了~
void k();
main(){
k();
}

int p = 1;
void k()
{
printf("asdasdasdasd");
}
这样就没问题了~ …… 谁能和我解释一下这个问题?

所有的预处理器命令、变量、命名常量和除main()以外的函数必须在使用之前声明和定义。
p定义在那里,只有它下面的函数能用。

局部变量,从定义开始到最后。

如果你要定义P为全局变量,应该写在开头
把int p放在k{}函数内为局部变量

你的p可以定义在main()的上面,函数体内的p属于局部变量,是局部变量。在main的上面定义算是全局变量。