下面的第一个程序是使用数组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;
}
答案 0 :(得分:-1)
绝对没有任何好处,因为两者都非常相似。在C中,一个数组可以被认为是指向数组第一个元素的指针(在函数范围内部声明了数组,编译器也知道数组的大小,所以在它之间有一些不同的行为2,虽然不在你的例子中)。 char数组是指向数组中第一个元素的指针,注意当他执行时没有类型转换:
char * pMovie = movie;
不需要输入强制类型,因为编译器认为这两个变量是相同的类型(char *)。
创建数组的类似方法是:
char *test = (char*)malloc(sizeof(char)*size_of_array);
我假设你的老师试图让你熟悉这个概念(C中的数组与指针类似,反之亦然)