这两个声明之间有什么区别?

时间:2015-09-26 09:26:31

标签: c arrays

我是C语言的新手,我无法弄清楚char* stc[4];char stc[4];之间的区别..

我知道char stc[4];会创建一个包含4个项目的数组,但创建第一个项目的内容对我来说是一个谜。 提前谢谢!

3 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分: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. */
   }

}

答案 2 :(得分:2)

您应该首先了解指针在C中的内容。第一个声明分配内存以保存指向char值的4个指针。第二个声明为保存4 char个值分配内存。

快速回答指针是什么,想想一下图书馆。图书馆包含“书籍”类型的项目,图书管理员会给你一个指针(一个便利贴或一张纸),上面有你感兴趣的书的位置信息。所以,类比地说,第一个声明保留4个后的内存,第二个预留4本书的内存。