【发布时间】:2022-01-18 20:59:18
【问题描述】:
我希望我的循环每次从开始时都包含不同的变量。应该是这样的:
int a1, a2, a3;
...
...
for (i = 1; i<=10; i++)
{
a**i**
}
我只想根据 i 更改循环中的变量,每次都增加 1。 这种事情怎么办?
【问题讨论】:
-
“改变变量”是什么意思
-
使用数组...
我希望我的循环每次从开始时都包含不同的变量。应该是这样的:
int a1, a2, a3;
...
...
for (i = 1; i<=10; i++)
{
a**i**
}
我只想根据 i 更改循环中的变量,每次都增加 1。 这种事情怎么办?
【问题讨论】:
您可以将 3 个int 变量放入一个数组中,并在一个循环中遍历该数组的所有元素,每次循环迭代访问该数组的一个元素。在每次循环迭代中,您可以对数组元素做一些事情,例如使用printf 打印它。
这是一个示例程序:
#include <stdio.h>
int main( void )
{
//declare and initialize 3 "int" variables in an array
int a[3] = { 10, 11, 12 };
//go through the entire array in a loop, printing one
//element per loop iteration
for ( int i = 0; i < 3; i++ )
{
printf( "%d\n", a[i] );
}
return 0;
}
这个程序有以下输出:
10
11
12
如果您希望将 3 int 变量保留为单独的实体,那么您可以创建一个指针数组,其中每个指针指向其中一个 int 变量,并在循环:
#include <stdio.h>
int main( void )
{
//declare and initialize 3 separate "int" variables
int a1 = 10, a2 = 11, a3 = 12;
//create and initialize array of pointers to
//these "int" variables
int *pointers[3] = { &a1, &a2, &a3 };
for ( int i = 0; i < 3; i++ )
{
printf( "%d\n", *pointers[i] );
}
return 0;
}
这个程序的输出与另一个程序完全相同。
【讨论】:
#include <stdio.h> int main( void ) { int *ptr, *ptr2, b1, b2; ptr = &b1 ptr2 = &b2 int a[3] = { ptr, ptr2}; //go through the entire array in a loop, printing one //element per loop iteration for ( int i = 0; i < 3; i++ ) { printf( "%d\n", a[i] ); } return 0; }
int 变量,并改用指针数组。这就是你要找的吗?