[英]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.