首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何用C打印数组的内容?

如何用C打印数组的内容?
EN

Stack Overflow用户
提问于 2022-07-31 16:11:59
回答 2查看 54关注 0票数 0

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

代码语言:javascript
运行
复制
# 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;
}

上述代码的输出为无符号int。

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

请帮我得到{ 3 ,4}和3的输出。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-07-31 17:15:05

除非是字符串,而且使用的是%s转换说明符,否则不能在单个转换中打印整个数组(或2D数组的一行)的内容。要获得所需的输出,必须分别打印每个行元素:

代码语言:javascript
运行
复制
printf( "{%d, %d}\n", arr[1][0], arr[1][1] );

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

代码语言:javascript
运行
复制
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的最后一个元素之外,在每个元素之后输出,”。在您的代码中,您会将其称为

代码语言:javascript
运行
复制
dispArr( arr[1], 2, stdout );
票数 2
EN

Stack Overflow用户

发布于 2022-07-31 16:15:44

第一个printf()语句引用一个数组(arr1),因此它打印出数组的地址。

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73184885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档