anc*_*ild 0 c arrays syntax types declaration
在c中,声明给定类型的变量的语法如下:
// <variable-type> <variable-name>
// for example:
int foo;
Run Code Online (Sandbox Code Playgroud)
要声明一个指针,可以在类型后面或变量名前面使用asterisk(*)。
int* bar;
int *foobar;
Run Code Online (Sandbox Code Playgroud)
该指针也可以不指向单个元素,而是指向给定数据类型的元素数组。
例如,一个字符数组(一个字符串):
char* oneString = "this is a string";
Run Code Online (Sandbox Code Playgroud)
这样的字符串的替代声明(编辑:尽管绝对不是等效的,如注释中所指出),然后如下所示:
//<variable-type> <variable-name>[<count>]
//example:
char anotherString[1024] = "this is another string";
Run Code Online (Sandbox Code Playgroud)
在用于比较的c#中,您可以采用另一种方法:
int[] intArray;
Run Code Online (Sandbox Code Playgroud)
什么是在有效的声明数组的考虑变量名,而不是它的类型?
(不是另一个问题,仅是为了提供比较设计决策的手段)
人们创建c#,违反此规则并将数组声明移至类型本身的原因可能是什么?
这样的字符串的替代声明如下所示
这是另一件事的声明。它不能替代第一个声明。在某些情况下,您可以互换使用它们,而在其他情况下则不能。
在C#中,为了进行比较,您可以反过来使用
不同的语言是不同的。
有效声明变量名而不是类型的数组的考虑因素是什么?
设计考虑是“使用后声明”。这意味着,如果你正在使用这样的变量:a[i]其结果是int,你声明它是这样的:int a[N];。如果这样使用它*a,则声明int *a。如果需要*a[i],请声明int *a[N],如果需要(*a)[i],请声明int (*a)[N]。
人们创建c#违反此规则的原因可能是什么
C#的设计人员认为“使用后声明”原则令人困惑,在他们的语言中不需要。您确定它们是否正确。