Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C *和[]之间的差异_C - Fatal编程技术网

C *和[]之间的差异

C *和[]之间的差异,c,C,C中变量声明中的*和[]之间有什么区别 我认为它们是一样的,但这段代码编译: int值[]={1,2,3}; 这一个int值*={1,2,3};导致分析错误。应为=…中的一个,它们在某些方面是相同的,但不是等价的。 首先,你展示了一个初始化。指针基本上是一个变量,其值为内存地址。所以不能使用像这样的初始值设定项int value*={1,2,3} 其次,当您使用[5]访问某个数组时,这将转换为对内存地址的解引用:*a+5。此外,数组的名称是指向第一个元素的指针 当然,还有很多事情要说。我试着让你

C中变量声明中的*和[]之间有什么区别

我认为它们是一样的,但这段代码编译: int值[]={1,2,3};
这一个int值*={1,2,3};导致分析错误。应为=…

中的一个,它们在某些方面是相同的,但不是等价的。 首先,你展示了一个初始化。指针基本上是一个变量,其值为内存地址。所以不能使用像这样的初始值设定项int value*={1,2,3}

其次,当您使用[5]访问某个数组时,这将转换为对内存地址的解引用:*a+5。此外,数组的名称是指向第一个元素的指针

当然,还有很多事情要说。我试着让你了解一下发生了什么,但我建议你读一本C语言的书


总之,[]只是一个运算符,它允许我们使用数组,而不必使用复杂的指针算法。它的功能可以用指针代替,但语法和实际操作方式非常不同,而且在大多数情况下,这不是必需的。

我怀疑这个int值*=。。。编译。如果你对语法有疑问,你需要读一本初级C语言书。@Dean,我知道数组和指针的区别,我认为[]和*在语法上是等价的,我说的是没有值的方括号。