繁体   English   中英

如何打印 C 中的数组内容?

[英]How to print the contents of an array in C?

我想知道如何打印数组的内容。

# include<stdio.h>

int main() {
    int arr[2][2];
    arr[0][0] = 1;
    arr[0][1] = 2;
    arr[1][0] = 3;
    arr[1][1] = 4;
    printf("%d", arr[1]);
    printf("%d", arr[1][0]); 
    return 0;
}

上述代码的 output 以 unsigned int 形式出现。

https://i.stack.imgur.com/A5daj.png <---- 这就是 output 的样子。

请帮我把 output 作为 {3,4} 和 3。

您的第一个 printf() 语句引用了一个数组 (arr[1]),因此它打印出数组的地址。

您的第二个 printf() 语句打印一个数组元素,但由于您没有在第一个 printf() 中包含结束行 ("\n"),它只是被添加到第一个 printf() 的末尾。

除非它是一个字符串并且您正在使用%s转换说明符,否则您不能在一次转换中打印整个数组(或二维数组的一行)的内容。 要获得所需的 output,您必须单独打印每个行元素:

printf( "{%d, %d}\n", arr[1][0], arr[1][1] );

在每行有两个以上元素的更一般情况下,您将使用循环(最好在其自己的函数中):

void dispArr( int *arr, size_t num_elements, FILE *stream)
{
  fputc( '{', stream);

  for ( size_t i = 0; i < num_elements; i++ )
    fprintf( stream, "%d%s", arr[i], 
      num_elements - i > 1 ? ", " : "}\n" );
}

fprintf语句的最后一位基本上说“输出,在除最后一个元素之外的每个元素之后,输出}\n ”。 在您的代码中,您将其称为

dispArr( arr[1], 2, stdout );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM