当前位置:  开发笔记 > 编程语言 > 正文

数组指针问题

如何解决《数组指针问题》经验,为你挑选了1个好方法。

我试过这个指针数组的例子.我收到错误"函数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,它可以正常工作.任何人都可以告诉我静态效果.非常感谢.



1> Zitrax..:

在gcc中,如果使用-pedantic标志,则会看到有关此内容的警告.

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

具有静态存储持续时间的对象的初始值设定项中的所有表达式或具有聚合或联合类型的对象的初始化列表中的所有表达式应为常量表达式

并且它不被允许,因为p数组是聚合类型,但在C99中我们有:

具有静态存储持续时间的对象的初始化程序中的所有表达式应为常量表达式或字符串文字.

推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有