[英]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.