C

类的存储大小

https://www.cnblogs.com/georgeOfChina/p/7661698.html

存储类

auto

register

static

extern

存储数据类形

1g=1024m 1m=1023kb 1kb=1024byte

byte(字节)

bit(位)

数类型

下表列出了关于标准整数类型的存储大小和值范围的细节:

  • 16位操作系统:long:4byte,int:2byte

  • 32位操作系统:long:4byte,int:4byte

  • 64位操作系统:long:8byte,int:4byte int型在不同位数操作系统中所占用的字节数不同,如果想编写可移植性好的程序,早年流行16位和32位操作系统时最好用long修饰int型,现在流行32位和64位操作系统,用int就挺多了。当然这些都看你怎么去理解它了,毕竟它 们在不同操作系统所占字节数不固定,所以各自都有其适用之处,不可定论其好坏。

C语言规定:无论什么平台都要保证long型占用字节数不小于int型, int型不小于short型。

类型 存储大小 值范围 精度
int 4byte=32bit -32,768 到 32,767 或 -2,147,483,648 到 2,147,483,647
long int 4byte=32bit
unsigned int 4byte=32bit 0 到 65,535 或 0 到 4,294,967,295
long 4byte=32bit -2,147,483,648 到 2,147,483,647
long long 8byte=64bit -9223372036854775808~9223372036854775807
unsigned long 8byte=64bit 0 到 4,294,967,295
char 1byte=8bit -128 到 127 或 0 到 255
unsigned char 1byte=8bit 0 到 255
signed char 1byte=8bit -128 到 127
short 2byte=16bit -32,768 到 32,767
unsigned short 2byte=16bit 0 到 65,535
float 4byte=32bit 1.2e-38到3.4e+38 6位有效位
long float 8byte=64bit
double 8byte=64bit 2.3e-308到1.7e+308 15位有效位
long double 8byte=64bit 3.4e-4932到1.1e+4932 19位有效位
bool 1byte=8bit

指针大小

  • 32位操作系统:4byte=32bit

  • 64位操作系统:8byte=64bit 指针就是地址,地址就是指针。 而地址是内存单元的编号。所以,一个指针占几个字节,等于是一个地址的内存单元编号有多长。 在计算机中,CPU不能直接与硬盘进行数据交换,CPU只能直接跟内存进行数据交换。而CPU是通过地址总线、数据总线、控制总线三条线与内存进行数据传输与操作。

结构体大小

位运算

位运算符作用于位,并逐位执行操作。&、 | 和 ^ 的真值表如下所示:

p q p & q p | q p ^ q
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1
假设如果 A = 60,且 B = 13,现在以二进制格式表示,它们如下所示:

A = 0011 1100

B = 0000 1101


A&B = 0000 1100

A|B = 0011 1101

A^B = 0011 0001

~A  = 1100 0011

赋值运

下表列出了 C 语言支持的赋值运算符:

运算符 描述 实例
= 简单的赋值运算符,把右边操作数的值赋给左边操作数 C = A + B 将把 A + B 的值赋给 C
+= 加且赋值运算符,把右边操作数加上左边操作数的结果赋值给左边操作数 C += A 相当于 C = C + A
-= 减且赋值运算符,把左边操作数减去右边操作数的结果赋值给左边操作数 C -= A 相当于 C = C - A
*= 乘且赋值运算符,把右边操作数乘以左边操作数的结果赋值给左边操作数 C *= A 相当于 C = C * A
/= 除且赋值运算符,把左边操作数除以右边操作数的结果赋值给左边操作数 C /= A 相当于 C = C / A
%= 求模且赋值运算符,求两个操作数的模赋值给左边操作数 C %= A 相当于 C = C % A
<<= 左移且赋值运算符 C <<= 2 等同于 C = C << 2
>>= 右移且赋值运算符 C >>= 2 等同于 C = C >> 2
&= 按位与且赋值运算符 C &= 2 等同于 C = C & 2
^= 按位异或且赋值运算符 C = 2 等同于 C = C 2
|= 按位或且赋值运算符 C |= 2 等同于 C = C | 2
posted @   alvinlyb  阅读(49)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示