在这段代码中,char *lineptr[MAXLINES];
和char *lineptr[]
之间有什么区别
char *lineptr[MAXLINES]; /* pointers to text lines */
char *alloc(int);
int readlines(char *lineptr[], int nlines);
?
{{1}}
答案 0 :(得分:0)
char *lineptr[MAXLINES];
表示该函数声明指向大小为MAXLINES
的数组的指针。
char *lineptr[]
- 此代码段提供数组的基址,以从该数组中读取nlines
。
答案 1 :(得分:0)
此:
Because updated_at column have the date with minutes and seconds.
You are trying to fetch records for which updated_at has the value
23/02/2016 00:00:00
定义长度为char *lineptr[MAXLINES];
的{{1}}数组。
对于声明如下的函数:
char *
参数MAXLINES
相当于int readlines(char *lineptr[], int nlines);
。这是因为当一个数组传递给一个函数时,它会衰减成一个指向数组第一个成员的指针。
您可以像这样调用此函数:
char *lineptr[]
函数参数与此不同:
char **lineptr
此语法无效,因为它声明了一个未指定大小的数组而未初始化它。另一方面,这是有效的:
char *lineptr[MAXLINES];
....
readlines(lineptr, MAXLINES);
在这种情况下,char *lineptr[];
是一个包含3个元素的数组,数组长度由初始化程序确定。