关于数组的定义,该怎么处理

关于数组的定义#include stdio.hchar array[] {t,o,m,c,a,t}int main(){//char *pchar a

关于数组的定义

#include <stdio.h>

char array[] = {'t','o','m','c','a','t'};
int main()
{
    //char *pchar array[] = {'t','o','m','c','a','t'};
    int i;
    p=array;
    for(i=0;i<6;i++)
        printf("%c\n",p[i]);
    return 0;
}



各位大神们,为什么我把数组定义成局部的就段错误啊。。。小白我又回来了。 数组
[解决办法]

char array[] = {'t','o','m','c','a','t'};
int main()
{
    //char *pchar array[] = {'t','o','m','c','a','t'};
    int i;
    p=array;
    for(i=0;i<6;i++)
        printf("%c\n",p[i]);
    return 0;
}char array[] = {'t','o','m','c','a','t'}; //这个是全局的
int main()
{
    //这个在main函数中,也是全局的,因为main函数结束,程序也结束了
    // 这个变量才消失的,所以是全局的 
    char *p; 

    char array[] = {'t','o','m','c','a','t'};
    int i;
   // p=array; p是哪里来的?
    for(i=0;i<6;i++)
        printf("%c\n",p[i]);
    return 0;
}