c语言有动态数组吗_C#语言

avatar
作者
猴君
阅读量:0

C语言和C#语言都支持动态数组的概念,但实现方式有所不同,在C语言中,动态数组通常通过指针和内存分配函数(如malloc或calloc)来实现,而在C#语言中,可以使用内置的ArrayList类或List<T>泛型类来创建动态数组。

c语言有动态数组吗_C#语言(图片来源网络,侵删)

C语言中的动态数组

在C语言中,动态数组是通过使用指针和内存分配函数来创建和管理的,以下是一个简单的示例:

 #include <stdio.h> #include <stdlib.h> int main() {     int *dynamicArray;     int n, i;     printf("Enter the size of the array: ");     scanf("%d", &n);     dynamicArray = (int *)malloc(n * sizeof(int));     if (dynamicArray == NULL) {         printf("Memory not allocated. ");         exit(0);     }     printf("Enter elements of the array: ");     for (i = 0; i < n; i++) {         scanf("%d", &dynamicArray[i]);     }     printf("Elements of the array are: ");     for (i = 0; i < n; i++) {         printf("%d ", dynamicArray[i]);     }     free(dynamicArray);     return 0; } 

在这个示例中,我们首先获取用户输入的数组大小,然后使用malloc函数为数组分配内存,接下来,我们从用户那里获取数组元素并将它们存储在动态数组中,我们打印数组元素并释放已分配的内存。

C#语言中的动态数组

在C#语言中,可以使用ArrayList类或List<T>泛型类来创建动态数组,以下是一个简单的示例:

 using System; using System.Collections.Generic; class Program {     static void Main() {         List<int> dynamicArray = new List<int>();         int n, i;         Console.Write("Enter the size of the array: ");         n = Int32.Parse(Console.ReadLine());         for (i = 0; i < n; i++) {             Console.Write("Enter element {0}: ", i);             dynamicArray.Add(Int32.Parse(Console.ReadLine()));         }         Console.WriteLine("Elements of the array are:");         for (i = 0; i < n; i++) {             Console.Write("{0} ", dynamicArray[i]);         }     } } 

在这个示例中,我们首先创建一个空的List<int>对象,我们获取用户输入的数组大小,并使用Add方法将用户输入的每个元素添加到动态数组中,我们遍历动态数组并打印其元素。

相关问答FAQs

Q1: C语言中的动态数组和静态数组有什么区别?

A1: 在C语言中,静态数组是在编译时分配内存的,其大小是固定的,而动态数组是在运行时分配内存的,其大小可以根据需要进行调整,动态数组使用指针和内存分配函数(如malloc或calloc)来创建和管理。

Q2: C#语言中的ArrayList和List<T>有什么区别?

A2: ArrayList是一个非泛型集合,可以存储任意类型的对象,而List<T>是一个泛型集合,只能存储特定类型的对象,List<T>的性能通常比ArrayList更好,因为它避免了装箱和拆箱操作,List<T>还提供了更多的功能,如排序和查找。

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!