在此特定程序中使用指针的主要好处是什么?

时间:2017-06-04 21:53:33

标签: c

下面的第一个程序是使用数组movie的指针:

#include <stdio.h>

int main(void) {
    char movie [20];
    char * pMovie = movie;

    fgets(pMovie, 20, stdin); 
    puts(pMovie);

    return 0;
}

虽然下面的第二个程序没有使用任何指针,但基本上可以实现相同的结果。我不理解老师试图用指针内的指针来表示的好处,但我可以假设它超出了这个特定的例子:

#include <stdio.h>

int main(void) {
    char movie [20];

    fgets(movie, 20, stdin);
    puts(movie);

    return 0;
}

1 个答案:

答案 0 :(得分:-1)

绝对没有任何好处,因为两者都非常相似。在C中,一个数组可以被认为是指向数组第一个元素的指针(在函数范围内部声明了数组,编译器也知道数组的大小,所以在它之间有一些不同的行为2,虽然不在你的例子中)。 char数组是指向数组中第一个元素的指针,注意当他执行时没有类型转换:

char * pMovie = movie;

不需要输入强制类型,因为编译器认为这两个变量是相同的类型(char *)。

创建数组的类似方法是:

char *test = (char*)malloc(sizeof(char)*size_of_array);

我假设你的老师试图让你熟悉这个概念(C中的数组与指针类似,反之亦然)