for循环定义变量
@小甲鱼int main()
{
char s1;
int i1 = 0,i2,i3;
printf("请输入英文文本");
while((s1 = getchar()) != '\n')
;
for(i2 = 0; i2 < strlen(s1) - 1; i2++)
{
char c = s1;
}
printf("%c", c);
}
运行报错,提示未声明变量c,在for循环中无法声明变量吗,还是说我的编译器有问题
原文:error: 'c' undeclared (first use in this function)|
本帖最后由 pheron 于 2019-5-24 17:48 编辑
一定是不能在这里声明变量c的呀,就算成功了,每次循环都会声明一次变量c。
你编译器给你报的错是在printf那一行的吧,如果for循环没执行的话,确实就没有声明变量c,编译器是不会去给你判断循环到底有没有执行的,大概直接跳过去了。 变量是有作用范围的,你的c被括号括起来了,只能作用在for循环内。在for循环外是无法被识别到的。。。要多努力看基础语法,多思考多努力,编程之路才能走的更远。。。 pheron 发表于 2019-5-24 17:47
一定是不能在这里声明变量c的呀,就算成功了,每次循环都会声明一次变量c。
你编译器给你报的错是在printf ...
变量的申明是静态的,也就是说在编译的时候编译器就会判断这个变量有没有申明。和for循环没关系的。即便是for循环执行了,c还是没申明。你俩都得努力了,基础语法第一层是学会、第二层就是理解了。有时间可以看看编译原理,可以领悟很多东西。 musilintan 发表于 2019-5-24 17:55
变量的申明是静态的,也就是说在编译的时候编译器就会判断这个变量有没有申明。和for循环没关系的。即便 ...
是的,也就刚看完c primer plus而已,很多东西都还没融会贯通。一时没往变量的作用域考虑…只考虑了一些编译的事
页:
[1]