int是隐式签名(C+;+;)吗? 在C++中,当我说“代码> int i=0时,
是现在自动int是隐式签名(C+;+;)吗? 在C++中,当我说“代码> int i=0时,,c++,int,unsigned,signed,C++,Int,Unsigned,Signed,是现在自动签名的int i=0或无符号整数i=0 我还没有通过谷歌找到答案,在c++中,默认情况下它是带符号的int。你可以通过递减整数并看到提供了负值来证明这一点,而不是将无符号整数的最大值折回。C++11标准()§3.9.1.2有这样的说法 有五种标准的有符号整数类型:“有符号字符”、“短整数”、“整数”、“长整数”和“长整数” C11标准()§6.2.5.4有这样的说法 有五种标准的有符号整数类型,分别为有符号字符、短整数、整数、长整数和长整数 似乎他们都同意int是有符号类型 (§3.1
签名的int i=0代码>或无符号整数i=0代码>
我还没有通过谷歌找到答案,在c++中,默认情况下它是带符号的int。你可以通过递减整数并看到提供了负值来证明这一点,而不是将无符号整数的最大值折回。C++11标准()§3.9.1.2有这样的说法
有五种标准的有符号整数类型:“有符号字符”、“短整数”、“整数”、“长整数”和“长整数”
C11标准()§6.2.5.4有这样的说法
有五种标准的有符号整数类型,分别为有符号字符、短整数、整数、长整数和长整数
似乎他们都同意int是有符号类型
(§3.1.2.5也同意,因此就我所能追溯到的情况来看,似乎是这样的)是的,已经签署。但是:如果你用谷歌搜索,那么第三个答案是。是的,请注意,有符号的
通常是多余的,除非与字符
一起使用。-1
和UINT\u MAX
之间有什么区别?UINT\u MAX
是无符号整数的最高可能值-1
是直接低于零的整数值。@Paul R:它们不同-1是整数,UINT_MAX是无符号整数。但是,(unsigned int)(-1)和UINT_MAX是相同的。这只能证明它是在您的平台上签名的。这并不能证明它在任何地方都是隐式签名的。你如何区分这两者之间的区别?如果查看调试器中的值,它们是相同的。如果您printf(“%d”,-1)
和printf(“%d,UINT_MAX”)
得到的输出是相同的。%u
也是如此。那么,将整数递减到0之后如何告诉您它是有符号的还是无符号的呢?这是正确的。但您可能希望提供一些链接或说明这一点的文档。否则,这只会被归类为注释,而不是答案。