声明一个int变量
declaring an int variable
for(int i=0; i < size; i++)
我在上面的代码中声明了一个变量,收到了一个编译时错误:根据ISO标准,这样的声明是过时的。
然后我在 for循环外声明变量,像这样
int i;
for(i=0; i < size; i++)
……它成功了????
谁能告诉我这个声明,因为据我所知,在c++中,我们不仅可以像C一样在顶部声明变量,还可以在需要时在下面的任何地方声明变量。
我使用的编译器是gcc
您可能使用gcc而不是g++进行编译(或者使用xl_C而不是xl_c++等)
否则,检查您没有通过旧标准(使用-std=c89或-ansi)
第一个声明只在for循环的作用域中声明i
。第二种方法在外部的作用域中声明它。两者都是完全正确的。当你想在循环后使用i
的值时,你会使用第二种情况,这通常是在循环中有break
子句的情况下,你想找出你在哪个迭代中跳出了循环。
我猜你在循环结束后使用i
。
从前,代码的第一个位相当于第二个位,在循环之外的作用域中声明 在标准c++中是无效的;i
,所以像这样的代码是可能的:for (int i = 0; i < size; ++i) {
// do something
}
if (i != size) {
// do something else
}
i
仅在循环体中可用,您需要在循环外声明它才能在那里访问它。
相关文章:
- 包装一个对象并假装它是一个 int
- 无法一次从二进制文件中读取一个 int
- 当我输入一个字母时,cin 输入(输入是一个 int),而不是打印错误一次,它打印正确一次,然后在循环的其余部分打印 i
- 为什么我不能使用与"常量字符*"相同的"const int*"创建一个 int 数组?
- 如何将私有整数从A类传递到C 类B类的另一个INT变量
- C :用sizeof()operator在for for loop中增加一个int变量,只能工作一次
- 结构C++可以用 0 初始化,但不能用另一个 int 初始化
- 将一个int []转换为字符串,而无需明确的c 循环
- 如何通过另一个int变量递增int变量
- C++根据输入返回一个字符串或一个int
- 如何在另一个结构 arrya 中的一个结构中初始化一个 int 数组
- 两个 UShorts 之间的操作在 VC2015 中给出了一个 int
- turbo 如何在 C++ 的系统() 函数中放入一个 int varriable
- 无限输入C 计算器要结束计算,需要再进行一个INT
- 带有两个INT列表的结构将减少为一个INT
- 在c#中构建一个int数组,每个int调用c++或在c++中构建并传递给c#
- 对于具有 3 个无符号字符和一个 int 的结构来说,对于unordered_map来说,什么是好的哈希函数?
- 当我创建一个int指针并实例化一个数组时,数组在内存中发生了什么
- 如何在C 中的结构内设置一个int数组
- 为什么在我的测试程序中,从字符缓冲区读取一个int时,"std::copy"5x(!)比"