簡體   English   中英

創建“n”個變量,其中“n”是用戶的輸入

[英]Creating 'n' number of variables, where 'n' is an input from the user

我是 C 語言的初學者。 只是想知道是否有一種方法可以創建“n”個變量,其中“n”是用戶的輸入。 是否可以決定在運行時創建的變量數量。

是否可以決定在運行時創建的變量數量。

如果我們談論根據用戶輸入創建或多或少的變量,那將意味着如下:

   int n;
   int result = scanf("%d", &n);
   // TODO: Check result value.

   int var0, var1, var2, ... varn;

這是不可能的。 您要使用的每個變量都必須在編譯時在您的代碼中定義。

如果您以“多個值的空間”的方式考慮“變量的數量”,那么我們可以為您做點什么。

在 C99 中,引入了一個稱為“可變長度數組”(VLA)的特性。 (在 C11 中它是可選的)

此功能允許您定義具有非常量元素數量的局部數組變量:

   int n;
   int result = scanf("%d", &n);
   // TODO: Check result value; check n for allowed range to fit into stack

   int values[n];

當您離開定義它的 function 時,此陣列的 memory 將被釋放。

或者在所有 C 標准中,您可以使用指向動態分配的 memory 的指針:

   int n;
   int result = scanf("%d", &n);
   // TODO: Check result value.

   int *values = malloc(n * sizeof(*values));
   // TODO: Check for NULL value.

您也可以在離開 function 后使用此 memory。 如果您不再需要它,您必須稍后釋放它。

在這兩個版本中,您都可以通過數組表示法訪問值: value[index]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM