如何使用list()在C中创建一个列表? (试图保存和从列表中提取元素)

如何使用list()在C中创建列表?不是一个链表,只是一个常规的元素列表。我来自python,我可以使用list = []。但是,当我在Google“C列表”中唯一出现的是链接列表。看来有一个函数列表(),我假设创建一个列表。我无法弄清楚如何提取第一和第二值:如何使用list()在C中创建一个列表? (试图保存和从列表中提取元素)

int L = list(1,2,3,4,5); 

int a = L[0];

int b = L[1];

我需要在C列表存储两个值,一个分子(n)和分母(d)。我正在创建一个分数计算器,我希望n和d是存储在分数(列表)中的两个值。我不想写f1 =(n1,d1)到fk =(nk,dk)的程序。

回答:

我看到2个问题有:

  1. 如何使用数据结构来存储非原子型可变
  2. 如何创建这样的结构的一个(同质)阵列。

Python列表没有直接的等价物,因为C无法在任意长度的货架上存储异构数据类型。你可能需要一些更深层次的背景阅读,但这里的一些示例代码,这可能有助于:

#include <stdio.h> 

#include <stdlib.h>

// Define a structure type, no builtin tuples

typedef struct {

int n;

int d;

} Fraction;

int main(int argc, char **argv) {

int i;

int N = 5;

Fraction f0 = {2, 3}; // Directly create & initialize data

Fraction *fractions; // variable length ponter to array of Fractions

// Using dynamic allocation of arrays

fractions = (Fraction *) malloc(N*sizeof(Fraction));

fractions[0] = f0;

fractions[1] = (Fraction) {5, 7}; // This needs to be explicitly casted to Fraction type

fractions[2] = (Fraction) {11, 13};

fractions[3] = (Fraction) {17, 19};

fractions[4] = (Fraction) {23, 29};

printf ("Fraction0 -> numerator: %d, denominator: %d\n", f0.n, f0.d);

for (i=1; i < N; i++) {

printf ("Fractions[%d] -> numerator: %d, denominator: %d\n", i, fractions[i].n, fractions[i].d);

}

}

这应该打印:

Fraction0 - >分子:2,分母:3个

分数[ 1] - >分子:5,分母:7个

级分[2] - >分子:11,分母:13

级分[3] - >分子:17,分母:19个

级分[4] - >分子:23,分母:29

回答:

C中没有这样一个列表。list不在C标准库中,所以我不确定你在哪里找到了。在C中,你通常会使用一个数组。

int L[] = {1,2,3,4,5}; 

int a = L[0];

int b = L[1];

回答:

在C中的等效将是元件的阵列:

int x[10]; 

int秒的阵列及其大小= 10

初始化C中的阵列可以以几种进行例如:

int x[10] = {0,1,2,3,4,5,6,7,8,9}; 

int x[] = {0,1,2,3,4,5,6,7,8,9};

或者您可以分配单个元素:

int x[10]; 

x[0] = 0;

x[1] = 1;

.

.

x[9] = 9;

您应该阅读更多关于数组以及它们如何在c中工作的内容。

以上是 如何使用list()在C中创建一个列表? (试图保存和从列表中提取元素) 的全部内容, 来源链接: utcz.com/qa/258360.html

回到顶部