相关疑难解决方法(0)

C++:int的默认长度是多少?

我一直在寻找一段时间,但无法找到这个看似简单的问题的明确答案:int的默认长度是多少?

我知道默认情况下会签署一个int.但它是短期还是长期?

根据以下页面中的"基本数据类型"表,默认情况下int是一个long int(4个字节). http://www.cplusplus.com/doc/tutorial/variables/

它总是正确的,还是取决于操作系统(32位/ 64位),编译器还是其他东西?

c++

3
推荐指数
2
解决办法
5286
查看次数

指针有大小吗?

在C++中,当使用指向多维数组的指针时,

int arr[2][5];
int (*p)[5] = arr;
Run Code Online (Sandbox Code Playgroud)

a如何int*与大小不同int (*)[5]

c++ size pointers

3
推荐指数
1
解决办法
418
查看次数

c ++:使用字节

我的问题是,我需要加载一个二进制文件并使用文件中的单个位.之后,我需要将其保存为字节.

我的主要问题是 - 选择使用什么数据类型 - char或long int?我可以以某种方式使用字符吗?

c++ io numbers

3
推荐指数
2
解决办法
1701
查看次数

int变量的大小

如何确定int的大小?

int的大小是否真的取决于处理器.对于32位机器,它将是32位,对于16位,它是16位.

在我的机器上它显示为32位,虽然机器安装了64位处理器和64位Ubuntu.

c int processor 32bit-64bit

3
推荐指数
1
解决办法
2万
查看次数

什么决定了C中整数的大小?

可能重复:
int,long等
的大小int的大小是否取决于编译器和/或处理器?

我不确定之前是否曾经问过类似的问题(至少,我在搜索时找不到任何问题,所以想到问自己).

是什么决定了int(和其他数据类型)的大小C.我已经阅读它取决于机器/操作系统/编译器,但没有得到明确/详细的解释,比如什么覆盖了另一个等等.任何解释或指针都会非常有用.

c c++ sizeof

3
推荐指数
2
解决办法
1611
查看次数

保证C数据类型的最小大小/范围

我已经找到了这个问题的不同答案,我知道必须有一个确定的答案.C中四种主要数据类型的最小分配内存大小是多少?int,double,float,和char是我在想什么的.这些signedunsigned类型是否以任何方式改变尺寸?

c variables

3
推荐指数
1
解决办法
1650
查看次数

对于像C ++这样的现实世界语言,时间复杂度是否有一致的定义?

C ++试图在许多库函数的规范中使用时间复杂度的概念,但是渐进复杂度是一种基于渐进行为的数学构造,当输入的大小和数字的值趋于无穷大时。

显然,在任何给定的C ++实现中,标量的大小都是有限的。

C ++中复杂性的正式形式化是什么,与C ++操作的有限性和有界性兼容

备注:毋庸置疑,对于基于类型参数的容器或算法(如STL),复杂度只能用用户提供的操作数(例如对已排序内容的比较)来表示,而不能用基本的C ++语言操作。这不是这里的问题。

编辑:

标准报价:

4.6 程序执行 [介绍执行]

1本国际标准中的语义描述定义了参数化的不确定性抽象机器。本国际标准对一致性实现的结构没有要求。特别是,它们不需要复制或模拟抽象机的结构。相反,需要遵循一致的实现来(仅)模拟抽象机的可观察行为,如下所述。

2本国际标准将抽象机的某些方面和操作描述为实现定义的(例如, sizeof(int))。这些构成了抽象机的参数。[...]

C ++语言是在抽象机器的基础上定义的,它基于标量类型(例如整数类型),具有有限的,已定义的位数,并且只有这么多可能的值。(指针的Dito。)

没有“抽象”的C ++,整数将无界并且可能“趋于无穷”。

这意味着在抽象机中,任何数组,任何容器,任何数据结构都是有界的(即使与可用的计算机及其微小的内存相比,它可能是巨大的(与64位数字相比))。

c++ complexity-theory time-complexity language-lawyer

3
推荐指数
1
解决办法
261
查看次数

为什么数据类型长支持最大数量等于long long?

所以我做了一些测试用新的数据类型很长很长,当我偶然发现了一个小"问题"(例如在C++来底漆第6版).我正在使用climbits库来告诉我支持的最大数量,两者都出现在9223372036854775807.这怎么可能?

#include <iostream> 
#include <climits>

int main()
{
    std::cout << "int size is " << sizeof(int) << " bytes." << std::endl;
    std::cout << "short size is " << sizeof(short) << " bytes." << std::endl;
    std::cout << "long size is " << sizeof(long) << " bytes." << std::endl;
    std::cout << "long long size is " << sizeof(long long) << " bytes." << std::endl;

    std::cout << "Maximum values: " << std::endl;
    std::cout << "int: " << …
Run Code Online (Sandbox Code Playgroud)

c++

2
推荐指数
2
解决办法
244
查看次数

打印INT的最大值

我尝试打印程序中的最大值int.使用以下代码::

#include <stdio.h>
#include <limits.h>
int main(void) {
    printf("%d",INT_MAX);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我得到的输出是:: 2147483647

但是,当我改变我的printf声明到printf("%lld",INT_MAX);我的输出成为577732524332023807.INT_MAX值应该在范围内long long int,那么为什么它无法转换INT_MAX为正确的数字long long int.

在此先感谢您的帮助.

c int long-long

2
推荐指数
3
解决办法
179
查看次数

为什么64位Windows上的本机长基元的大小只有4个字节?

有人请告诉我这有什么意义,以及如何让它停止?说真的,我疯了还是64位Windows长型只有4个字节?这有什么用呢?我认为本机长原始大小应该与本机寄存器大小相同.

[32-bit Linux]

me@u32:~$ ./sizes32
sizeof(char):      1
sizeof(short):     2
sizeof(int):       4
sizeof(long):      4
sizeof(long long): 8

[64-bit Linux]

me@u64:~$ ./sizes64
sizeof(char):      1
sizeof(short):     2
sizeof(int):       4
sizeof(long):      8
sizeof(long long): 8

[32-bit Windows]

C:\Users\me\Downloads>sizes32.exe
sizeof(char):      1
sizeof(short):     2
sizeof(int):       4
sizeof(long):      4
sizeof(long long): 8

[64-bit Windows]

C:\Users\me\Downloads>sizes64.exe
sizeof(char):      1
sizeof(short):     2
sizeof(int):       4
sizeof(long):      4
sizeof(long long): 8
Run Code Online (Sandbox Code Playgroud)

c windows x86 win64 x86-64

2
推荐指数
2
解决办法
177
查看次数