gpt4 book ai didi

c - 指针数组问题

转载 作者:太空狗 更新时间:2023-10-29 15:56:29 26 4
gpt4 key购买 nike

我试过这个指针数组的例子。我收到错误“函数 main 中的非法初始化”

int main()
{
int a[]={1,2,3,4,5};
int b[]={1,2,3,4,5};
int c[]={1,2,3,4,5};
int *p[3]={a,b,c};
int i;
clrscr();
for(i=0;i<3;i++)
printf("%d - %u\n",*p[i],p[i]);
getch();
}

如果我在数组声明中使用 static int 而不是 int,它工作正常。谁能告诉我这里静态的效果。非常感谢。

最佳答案

在 gcc 中,如果您使用 -pedantic 标志,您会看到关于此的警告。

但这显然是在标准中发生了变化,在 C90 中它说:

All the expressions in an initializer for an object that has static storage duration or in an initializer list for an object that has aggregate or union type shall be constant expressions

由于 p 数组是聚合类型,这是不允许的,但在 C99 中我们有:

All the expressions in an initializer for an object that has static storage duration shall be constant expressions or string literals.

关于c - 指针数组问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/549507/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com