趣学 C 语言(三)—— 琐碎

“不需要指定”数组长度的场合

// A.cpp
int arr[100];

// B.cpp
extern int arr[];
                        // 不是定义,只是声明

int / long 的表示范围

不加 unsigned 的 int / long 一般都是有符号的,则其表示范围(以32 位机为例)为:

2312311(0x7FFF FFFF)

#include <limits>
std::numeric_limits<int>::min() ⇒ -2147483648 (-2^31)
std::numeric_limits<int>::max() ⇒ 2147483647 (2^31-1)

或者我们让最大的 long 值+1,其溢出为最小的 long 值:

long x = 0x7fffffff;
printf("%d\n", x+1);
                        // -2147483648

你可能感兴趣的:(趣学 C 语言(三)—— 琐碎)