2015-09-26 137 views
-2

我是新来的C语言,我无法弄清楚什么是char* stc[4];char stc[4];之间的区别..这两个声明有什么区别?

我知道char stc[4];将创建4个项目,但什么创造的第一个数组是一个谜给我.. 在此先感谢!

+0

这太宽泛了吗?我认为这是一个非常具体的问题 - 减去绒毛,它是“char * str [4]是什么;'声明? – immibis

回答

6

char *stc[4];创建一个指向char的4个指针的数组。 (C的任何介绍都应解释指针和声明。)

2

char* stc[4]是一个指针数组,它存储4个char数据类型变量的地址

int main() 
{ 
    char stc[] = {'a', 'b', 'c','d'}; 
    char *ptr[4]; 
    int i; 

    for (i = 0; i < 4; i++) 
    { 
     ptr[i] = &stc[i]; /* assign the address of char array elements. */ 
    } 

} 
+1

对象,而不是变量。 – fuz

2

你应该学会第一个指针是什么C.第一个声明举行4个指针char值分配内存。第二个声明分配内存用于保存4 char值。

快速回答指针是什么,想想图书馆。一个图书馆包含“书”类型的项目,图书管理员会给你一个指针(一个贴子或一张纸)与关于你感兴趣的书的位置信息。因此,类比地,第一个声明保留4个帖子的记忆,第二个保留4个记忆的记忆。