gpt4 book ai didi

c - 使用 typedef 时,二维数组如何在 C 中工作?

转载 作者:行者123 更新时间:2023-12-05 08:36:25 26 4
gpt4 key购买 nike

我需要帮助的演讲幻灯片问题: Lecture Slide question that I need help on:

我错过了今天的讲座,所以我不知道讲座幻灯片中的这个问题是怎么回事。我的直觉告诉我应该是 C. 和 N x M 矩阵(行 x 列),但我不太确定。感谢任何帮助

最佳答案

double X_t[N]N 表示数组的类型 double 类型的元素。

X_t A[M];是一个数组的声明 M类型为 double[N] 的元素.

所以这个声明等同于

double A[M][N];

这是一个演示程序。

#include <stdio.h>

int main(void)
{
enum { M = 2, N = 5 };
typedef double X_t[N];

printf( "sizeof( X_t ) = %zu\n", sizeof( X_t ) );

putchar( '\n' );

X_t A[M];

printf( "sizeof( A ) = %zu\n", sizeof( A ) );
printf( "sizeof( A[0] ) = %zu\n", sizeof( A[0] ) );
printf( "sizeof( A ) / sizeof( A[0] ) = %zu\n", sizeof( A ) / sizeof( A[0] ) );


return 0;
}

程序输出为

sizeof( X_t ) = 40

sizeof( A ) = 80
sizeof( A[0] ) = 40
sizeof( A ) / sizeof( A[0] ) = 2

所以可以看出数组A有两个大小为 40 的元素字节等于 N * sizeof( double ) .

关于c - 使用 typedef 时,二维数组如何在 C 中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69258103/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com