相关疑难解决方法(0)

我可以在哪里合法地声明C99中的变量?

当我第一次被介绍到CI被告知总是在函数的顶部声明我的变量.现在我对语言有了很强的把握,我将重点放在编码风格上,特别是限制了变量的范围.我已经阅读了限制范围的好处,我遇到了一个有趣的例子.显然,C99允许你这样做......

for (int i = 0; i < 10; i++)
{
   puts("hello");
}
Run Code Online (Sandbox Code Playgroud)

我原以为一个变量的作用域是由最内层的限制周围的花括号{ },但在上面的例子中int i出现通过的,即使是他们的之外声明for循环的花括号中范围有限.

我试图扩展上面的例子fgets()来做我认为类似的东西,但这两个都给了我一个语法错误.

fgets(char fpath[80], 80, stdin);*见说明**

fgets(char* fpath = malloc(80), 80, stdin);

那么,在C99中声明变量的确切位置是合法的吗?for循环示例是规则的例外吗?这适用于whiledo while循环吗?

*注意**:我甚至不确定这在语法上是否正确,即使我可以在那里声明char数组,因为fgets()它正在寻找指向char的指针而不是指向char 数组80的指针.这就是我尝试该malloc()版本的原因.

c variables declaration

34
推荐指数
2
解决办法
7611
查看次数

标签 统计

c ×1

declaration ×1

variables ×1