简述四种变量的类型

说实话,当我开始接触C语言时,我对变量类型非常困惑。
字符(char)很容易理解。
仅存储一个字母或标点符号。
1 个字节(8 位)就足够了。
我记得第一次写代码时,我要保存一个汉字,但是编译器立即给了我一个红旗,范围错误——然后我意识到ASCII码表的容量太大了,无法保存很多字符。
当时我还在想,是否应该用两个字符来创建一个汉字呢?后来我了解到还有扩展ASCII或者Unicode之类的高级东西,但是C语言是自带的。

整数类型更有趣。
一个标准的int包含从-3 2 7 6 8 到3 2 7 6 7 的1 6 位。
我在面试时被问到了这个问题。
提问者,如果你写一个程序来保存一个特别大的数怎么办?我当时太傻了,忘记了int可以使用short和long等修饰符。
后来我想,短8 位和长3 2 位(不同的编译器可能有差异),范围自然不同。
这让我意识到,写代码的时候不能只看默认的int,必须要看实际的状态。

浮点数(浮点数和双精度数)让我更头疼。
浮点型可容纳 3 2 位数字,精度仅为 6 至 7 位数字。
我编写了一个财务计算程序并使用浮动来节省数量。
结果少了两位小数,导致工程延误。
后来我换成双6 4 位存储和非常高的精度,所以什么也没发生。
有趣的是,double 的范围比 float 的范围大,从 1 .7 e-3 08 到 1 .7 e+3 08 具体数字我记不太清了,但也许就是这个数额。
记得有一次我用double来保存一个很小的数,结果直接转成了0。
当时我哭笑不得。

像改装这样的小事情也很有趣。
可以扩展无符号整数的正范围。
例如,int最初是-3 2 7 6 8 到3 2 7 6 7 ,无符号增量将从0到6 5 5 3 5 注册给我留下了深刻的印象。
当我学习汇编时,编译器试图将注册表变量尽可能地放在CPU寄存器中。
我得知他会尝试,这很快。
但实际效果因处理器和平台而异,所以不要太依赖它。
更不用说长的那种了。
目前以6 4 位系统为主,long通常为6 4 位。

我认为输入关键字特别有用。
当我过去在做一个项目时,我就在这里反复使用了一个太长而无法输入的 unsigned long int 。
后来我用typedef给它起了一个不同的名字:myint,代码一下子就变得干净多了。
这就像给一个常用的工具起一个昵称,以使其更易于使用。
我的一位同事写了类似 typedef struct { int x; 的东西整数y; Point2 D,使用起来更加方便,代码也更加可读。

一般来说,变量类型在使用多次后就会习惯,但一开始需要花一些功夫去理解它们。
特别是整数和浮点数的精度。
我也经历过陷阱,所以你也应该小心。

数据库里面变量类型有几种?

上星期。
MySQL 整数类型。
tinyint占8 位。
Smallint 占用 1 6 位。
mediumint 占用 2 4 位。
int占3 2 位。
h3int 占用 6 4 位。

2 02 3 1 字节等于 8 位。
我知道这一点。

我的那个朋友。
字符类型。
固定长度字符串。
储存时。
尾随空格将被删除。

刚刚想到另一件事。
varchar 类型。
可变长度字符串。
储存时。
保留尾随空格。

数据时间类型。
时区无关。
这是肯定的。

时间戳类型。
取决于时区。
这也是确定的。
没关系。