C *和[]之间的差异
C中变量声明中的*和[]之间有什么区别 我认为它们是一样的,但这段代码编译: int值[]={1,2,3};C *和[]之间的差异,c,C,C中变量声明中的*和[]之间有什么区别 我认为它们是一样的,但这段代码编译: int值[]={1,2,3}; 这一个int值*={1,2,3};导致分析错误。应为=…中的一个,它们在某些方面是相同的,但不是等价的。 首先,你展示了一个初始化。指针基本上是一个变量,其值为内存地址。所以不能使用像这样的初始值设定项int value*={1,2,3} 其次,当您使用[5]访问某个数组时,这将转换为对内存地址的解引用:*a+5。此外,数组的名称是指向第一个元素的指针 当然,还有很多事情要说。我试着让你
这一个int值*={1,2,3};导致分析错误。应为=…中的一个,它们在某些方面是相同的,但不是等价的。 首先,你展示了一个初始化。指针基本上是一个变量,其值为内存地址。所以不能使用像这样的初始值设定项int value*={1,2,3} 其次,当您使用[5]访问某个数组时,这将转换为对内存地址的解引用:*a+5。此外,数组的名称是指向第一个元素的指针 当然,还有很多事情要说。我试着让你了解一下发生了什么,但我建议你读一本C语言的书
总之,[]只是一个运算符,它允许我们使用数组,而不必使用复杂的指针算法。它的功能可以用指针代替,但语法和实际操作方式非常不同,而且在大多数情况下,这不是必需的。我怀疑这个int值*=。。。编译。如果你对语法有疑问,你需要读一本初级C语言书。@Dean,我知道数组和指针的区别,我认为[]和*在语法上是等价的,我说的是没有值的方括号。