我正在阅读 K&R 第二版第 5 章。
在第 87 页,指向字符数组的指针被介绍为:
char *pmessage;
pmessage = "Now is the time";
怎么知道这pmessage
是一个指向字符数组的指针,而不是指向单个字符的指针?
为了扩展,在第 94 页,定义了以下函数:
/* month_name: return the name of the n-th month */
char *month_name(int n)
{
static char *name[] = {
"Illegal month",
"January", "February", "March",
...
};
return (n < 1 || n > 12) ? name[0] : name[n];
}
如果只是为上面提供了函数声明,那么如何知道返回的是单个字符还是字符数组?
如果假设返回 frommonth_name()
是一个字符数组并迭代它直到NULL
遇到 a ,但返回实际上是单个字符,那么是否没有分段错误的可能性?
有人可以演示指向单个字符与字符数组的指针的声明和分配,它们与函数的用法以及已返回的标识吗?