Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ int与unsigned或signed相同吗?_C++ - Fatal编程技术网

C++ int与unsigned或signed相同吗?

C++ int与unsigned或signed相同吗?,c++,C++,整型与无符号或有符号的整型相同吗?普通的int与signed相同与signed intint默认情况下是有符号的。C++标准3.9.1/2: 有四种带符号整数类型:“/strong>带符号字符”、“短整数”、“整数”和“长整数” C++标准3.9.1/3: 对于每种有符号整数类型,都存在相应的(但不同的)无符号整数类型: “无符号字符”、“无符号短整型”、“无符号整型”和“无符号长整型” int,“ 因此,sizeof(int)等于sizeof(unsigned)。但是boost::is_sam

整型与无符号或有符号的整型相同吗?

普通的
int
signed
相同与
signed int
int
默认情况下是有符号的。

C++标准3.9.1/2:

有四种带符号整数类型:“/strong>带符号字符”、“短整数”、“整数”和“长整数”

C++标准3.9.1/3:

对于每种有符号整数类型,都存在相应的(但不同的)无符号整数类型: “无符号字符”、“无符号短整型”、“无符号整型”和“无符号长整型” int,“


因此,
sizeof(int)
等于
sizeof(unsigned)
。但是
boost::is_same::value
为false。

signed int
int
相同,并指定一个可以同时具有正值和负值的整数值


另一方面,
无符号整数
只能有正值,因此最大正值远大于
有符号整数
整数
默认情况下是有符号的,
长整数

所以,
int
signed
signed int
是一样的

类似地,
long
signed long
是相同的


chars
另一方面,没有默认值。实现可以考虑它们是已签名的或未签名的(许多都有一个命令行开关来选择)。code>char、
signed char
unsigned char
被认为是重载解析、模板实例化和其他位置的三种不同类型。

一些(全部?)编译器有一个开关,可以将默认值更改为unsigned。在MSVC中,默认情况下,微芯片PIC控制器的CCS编译器未签名。啊!/J编译器开关影响char,而不是int。“char”可能有符号,也可能没有符号。“char”、“signed char”和“unsigned char”始终是不同的类型,无论“char”是否有符号。实际上,值的范围大小完全相同,只是进行了移位,使最小值为0。最后一句话限制太多。这不仅仅是超负荷分辨率,它无处不在。例如,也可以作为模板参数。因此
std::vector
std::vector
的类型相同,但
std::vector
std::vector
的类型不同