C ++ sentinel值的数据类型总是一个布尔值?对或错?

时间:2013-09-03 06:18:50

标签: c++ sentinel

刚开始介绍C++课程。我有一个查询如下。

标记值的数据类型始终为boolean?对还是错?

3 个答案:

答案 0 :(得分:2)

让我们看一下标准中找到的标记值的示例:

  

以空字符结尾的字节字符串或NTBS是一个字符序列,其定义内容的最高寻址元素的值为零(终止空字符);序列中没有其他元素的值为零。

但是这个字符序列是什么类型(以及结束它的值为零)?

  

字符序列是一个数组对象A,可以声明为T A [N],其中T是任何类型charunsigned charsigned char,可选择由constvolatile的任意组合限定。

答案 1 :(得分:0)

Sentinel值不一定是布尔类型,它取决于您的程序逻辑来确定什么应该是最佳的哨兵值/数据类型。

请参阅此处的一些示例: -

http://www.mikeware.us/cpp/?p=20

答案 2 :(得分:0)

来自wiki

  

以下是常见哨兵价值及其用途的一些例子:

     
      
  • 用于指示以空字符结尾的字符串结尾的空字符
  •   
  • 用于指示链接列表结尾的空指针
  •   
  • 用于指示非负整数序列结束的负整数
  •   
  • 文件结束,某些输入例程返回的非字符值,表示没有其他字符可用于   文件
  •   
  • 高值,业务编程中使用的十六进制0xFF的键值
  •   

所以这完全取决于你如何定义“哨兵”