簡體   English   中英

為什么將c數組聲明為變量名而不是類型

[英]Why is c-array declared at variable-name, instead of type

介紹

在c中,聲明給定類型的變量的語法如下:

// <variable-type> <variable-name>
// for example:
int foo;

要聲明一個指針 ,可以在類型后面或變量名前面使用asterisk(*)

int* bar;
int *foobar;

該指針也可以不指向單個元素,而是指向給定數據類型的元素數組
例如,一個字符數組(一個字符串):

char* oneString = "this is a string";

這樣的字符串的替代聲明 (編輯:盡管絕對不是等效的,如注釋中所指出),然后如下所示:

//<variable-type> <variable-name>[<count>]
//example:
char anotherString[1024] = "this is another string";

用於比較的c#中 ,您可以采用另一種方法:

int[] intArray;

主要問題:

有效地在變量名 而非數組類型中聲明數組的考慮因素是什么

作為背景/用於比較

(無意作為另一個問題,僅提供比較設計決策的方法)
人們創建c#,違反此規則並將數組聲明移到類型本身的原因可能是什么?

這樣的字符串的替代聲明如下所示

這是另一件事的聲明。 它不能替代第一個聲明。 在某些情況下,您可以互換使用它們,而在其他情況下則不能。

在C#中,為了進行比較,您可以反過來使用

不同的語言是不同的。

有效聲明變量名而不是類型的數組的考慮因素是什么?

設計考慮是“使用后聲明”。 這意味着,如果您正在使用這樣的變量: a[i]並且結果為int ,則可以這樣聲明: int a[N]; 如果像這樣使用*a ,則聲明int *a 如果需要*a[i] ,則聲明int *a[N] ;如果需要(*a)[i] ,則聲明int (*a)[N]

人們創建c#違反此規則的原因可能是什么

C#的設計人員認為“使用后聲明”原則令人困惑,在他們的語言中不需要。 您確定它們是否正確。

暫無
暫無

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

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