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之后如何告诉您它是有符号的还是无符号的呢?这是正确的。但您可能希望提供一些链接或说明这一点的文档。否则,这只会被归类为注释,而不是答案。