指向字符的指针跟指向字符串的指针

指向字符的指针和指向字符串的指针
看到一个题目:
const char * pt;
问pt是指向字符常量的指针还是指向字符串常量的指针?

貌似这样定义了以后既可以指向一个字符,也可以指向一个字符?到底是有什么区别呢?

------解决方案--------------------
指向一个字符的指针,可以指向字符串的第一个字符。

------解决方案--------------------
C没有, 字符串,这种数据类型,只有字符数组类型;

C有字符串字面值---这是字符串常量,是一个带有结束符的字符常量数组。

C的字符指针,可以指向,字符数组的第一个元素;
这样这个指针,就是(不是指向)字符数组的首地址;

这种指针,可以看作字符串;
如果数组里存在字符串结束符的话。

C 不存在,字符串指针这种数据类型。

确切地说,C不存在字符串指针;

C++有一个标准库实现的字符串类类型。
如果,真要确认,一种数据类型,为字符串指针类型的话;
那么,C++,string * 就是一种,比较恰当的C++数据类型。


------解决方案--------------------
任何一个数据类型的指针,
都可以,指向单个数据(变量,常量),
也都可以,指向数组的首元素(其实任意一个元素都可以)

所以字符指针指向字符,或者指向字符串(字符数组)的第一个字符(第 n 个字符);

除了字符串字面值(字符串常量)
1)用双引号括起来,
并且,
2)
可以用字符指针持有(指向首元素),
3)
可以用const 指针,也可以用非const 指针,指向字符串字面值(字符串常量)的首元素。
这种情况比较特殊外。

字符类型指针,和其他类型指针,并无太多不同。