Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 可以在嵌套的for循环中使用双括号吗?_C_For Loop_Nested Loops - Fatal编程技术网

C 可以在嵌套的for循环中使用双括号吗?

C 可以在嵌套的for循环中使用双括号吗?,c,for-loop,nested-loops,C,For Loop,Nested Loops,我的问题的意思是,如果我有一个嵌套的for循环 for(int i = 0; i < 10; i++) { for(int j = 0; j < 10; i++) { printf("%d\n"___); } } for(int i=0;i

我的问题的意思是,如果我有一个嵌套的for循环

for(int i = 0; i < 10; i++)
{
    for(int j = 0; j < 10; i++)
    {
        printf("%d\n"___);
    } 
}
for(int i=0;i<10;i++)
{
对于(int j=0;j<10;i++)
{
printf(“%d\n”\uuuu);
} 
}

我在空白处放什么?如果我已经声明了一个数组,[i][j]会是非法的吗?

你的问题真的不清楚。但据我所知,你有一些二维数组,你想打印数组的内容

必须已将数组定义为
int arr[10][10]
,然后才能使用

printf("%d\n", arr[i][j]);

基于你的问题,我不确定你到底在坚持什么,所以我做了一个带注释的C程序

我声明了一个
int
数组,它的第一维度和第二维度至少为10,因为您将
I
j
从0迭代到9(包括9)。这是为了避免迭代时出现越界问题

数组的元素未在程序中初始化。运行此程序时,可能会打印所有零。它还可能打印内存中碰巧存在的其他值(因为数组值未初始化)

上一次我在for循环之外声明了
I
j
,以防这是您面临的问题

#include <stdio.h>

int main(int argc, char** argv) {
    // Declare an array
    // Note that both dimensions are at least 10
    // Also note that none of the values are initialized here
    int myArray[10][10];

    // Both i and j are declared here rather than in the for loop
    // This is to avoid the following potential error:
    // error: 'for' loop initial declarations are only allowed in C99 or C11 mode
    int i, j;

    for (i = 0; i < 10; i++) {
        for (j = 0; j < 10; j++) {
            // Note that the values this prints are uninitialized
            printf("%d\n", myArray[i][j]);
        }
    }

    return 0;
}
#包括
int main(int argc,字符**argv){
//声明数组
//请注意,两个尺寸至少为10
//还要注意,这里没有初始化任何值
int myArray[10][10];
//i和j都在这里声明,而不是在for循环中声明
//这是为了避免以下潜在错误:
//错误:仅在C99或C11模式下允许“for”循环初始声明
int i,j;
对于(i=0;i<10;i++){
对于(j=0;j<10;j++){
//请注意,此打印的值未初始化
printf(“%d\n”,myArray[i][j]);
}
}
返回0;
}

printf(“%d\n”[i][j])
是非法的,这一事实与for循环无关。不,假设数组被声明为
int-arrayName[x][y],则这一点没有错其中x和y至少为10@asimes: ... 假设他想写
printf(“%d\n”,arrayName[i][j])
,而不是像immibis的评论中那样写
printf(“%d\n”[i][j])
。@Amadan,我希望他不打算按照immibis的建议写…@AlanAu实际上,在C中,通常不是这样。更正你的答案。。。你说的是declare
arr
,你打印的是
a
,也没有comma@asimes更正了。谢谢