`
fp_moon
  • 浏览: 977736 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

C语言整型变量所占内存字节数 .

阅读更多

C标准没有具体规定各类整型数据所占内存字节数,只要求long型数据长度不短于int型,short型不长于int型。具体如何实现,由各计算机系统自行决定。如在微机上,int型和short都是16位,而long是32位。在VAX 750上,short是16位,而int和long都是32位,一般以一个机器字(word)存放一个int数据。前一阶段,微机的字长一般为16位,故以16位存放一个整数,但整数的范围太小,往往不够用,故将long型定为32位。而VAX的字长为32位,以32位存放一个整数,范围可达正负21亿,已足够用了,不必再将long型定为64位。所以将int和long都定为32位。通常的做法是:把long定为32位,把short定为16位,而int可以是16位,也可以是32位。这主要取决于机器字长。在微机上用long型可以得到大范围的整数,但同时会降低运算速度,因此除非不得已,不要随便使用long型。

ANSI标准定义的整数类型
┌───────────┬────┬─────────────────────┐
ㄧ        类型          ㄧ 比特数 ㄧ                 数值范围                 ㄧ
├───────────┼────┼─────────────────────┤
ㄧ [signed] int         ㄧ   16   ㄧ     -32768~32767      即 -215~(215-1)   ㄧ
├───────────┼────┼─────────────────────┤
ㄧ Unsigned int         ㄧ   16   ㄧ          0~65535      即    0~(216-1)   ㄧ
├───────────┼────┼─────────────────────┤
ㄧ [signed] short [int] ㄧ   16   ㄧ     -32768~32767      即 -215~(215-1)   ㄧ
├───────────┼────┼─────────────────────┤
ㄧ Unsigned short [int] ㄧ   16   ㄧ          0~65535      即    0~(216-1)   ㄧ
├───────────┼────┼─────────────────────┤
ㄧ long [int]           ㄧ   32   ㄧ-2147483648~2147483647 即 -231~(231-1)   ㄧ
├───────────┼────┼─────────────────────┤
ㄧ Unsigned long [int]  ㄧ   32   ㄧ          0~4294967295 即    0~(232-1)   ㄧ
└───────────┴────┴─────────────────────┘
 
在具体的编译环境中可以用sizeof()函数来查看该环境下各数据类型的长度

#include <stdio.h>
int main()
{
    printf("char   : %d byte\n", sizeof(char));
    printf("int    : %d byte\n", sizeof(int));
    printf("float  : %d byte\n", sizeof(float));
    printf("double : %d byte\n", sizeof(double));
    return 0;
}

TC下结果:
=========================
char   : 1 byte
int    : 2 byte
float  : 4 byte
double : 8 byte
=========================

VC下结果:
=========================
char   : 1 byte
int    : 4 byte
float  : 4 byte
double : 8 byte
=========================

注意TC和VC下的数据类型的长度, 以及16位和32位的一些不同。环境的不同会影响如int这种数据类型的表示范围。

分享到:
评论

相关推荐

    C语言中变量的实质

    这里,`i1`和`i2`分别代表整型变量`i`占用的两个字节,而`a`占用一个字节。 **3. 赋值操作** 一旦变量被声明并且分配了内存空间,就可以对其进行赋值操作。例如: ```c i = 30; a = 't'; ``` 这些操作意味着将...

    谈谈C语言中的变量.pdf

    C语言中有多种类型的变量,例如整型变量、浮点型变量、字符型变量等。不同的变量类型决定了变量所占的字节数和所能存放的数据类型。 变量的存储类型 C语言中有多种存储类型,例如自动存储类型、寄存器存储类型、...

    C语言动态分配内存ppt课件.ppt

    分配一个整型变量数组应使用:数组元素个数 * sizeof(int)确定内存块的大小问题。 free函数 free函数是释放动态分配的内存的函数。free函数的原型为void free(void *p),其中p是要释放的已分配内存的块的首地址。 ...

    C语言中变量的理解.pdf

    在函数调用期间,局部变量存在于内存中,当函数返回时,内存中的局部变量将释放其所占用的内存单元,变量的值也会消失。全局变量在函数外部定义,其作用范围贯穿整个程序,只要程序没有结束,全局变量就一直存在。 ...

    C语言的 变量.docx

    这段代码告诉编译器创建一个名为`num`的整型变量。类似的声明还包括: ```c float price; // 声明一个浮点型变量price char letter; // 声明一个字符型变量letter ``` #### 三、变量赋值 声明变量之后,可以通过...

    C语言程序设计-整型数据.pptx

    - 整型变量用于存储整型数据,根据占据的内存字节数,C语言提供了四种类型的整型变量。 - **short int**(或简称short):取值范围从-32768到32767,占用2个字节。在某些情况下,可以写作int,但不推荐这样做,...

    C语言实现内存管理

    使用`malloc()`函数时,我们需要提供所需内存的字节数。例如,要分配一个整型数组,我们可以写`int *arr = (int*) malloc(sizeof(int) * array_size);`。这里的`sizeof(int)`获取一个整型的字节数,`array_size`是...

    C语言结构体内存对齐问题.pdf

    按照内存对齐的规则,在32位系统中,结构体的大小并不是简单的成员大小之和,因为编译器会自动在成员变量之间插入填充字节,以确保每个变量都能在内存中按照4字节对齐。具体来说: - 成员a1占用1个字节,后面可能会...

    C语言指针详解(通俗易懂).pdf

    根据不同的系统和编译器,一个整型变量可能占据两个字节的空间,一个字符型变量占据一个字节的空间。声明变量后,我们可以将值赋给这些变量,如`i=30; a='t';`。这时,整数值30会被存储在变量`i`的内存空间中,而...

    C语言动态分配内存PPT学习教案.pptx

    例如,释放一个动态分配的整型变量: ``` int *p; p = (int *)malloc(sizeof(int)); free(p); ``` 需要注意的是,free函数同样是一个库函数,并且其参数必须是一个由动态内存分配方法分配的内存块的首地址。 五、...

    单片机基于C语言编程的基础PPT学习教案.pptx

    长整型变量(long)则占4字节,如图4.2所示,其存储方式类似,高位字节在低地址,低位字节在高地址。 在使用C语言编写MCS-51单片机程序时,理解这些数据类型及其在内存中的存储方式至关重要,因为这直接影响到程序...

    C语言变量[归类].pdf

    例如,整型变量用于存储整数,浮点型变量用于存储带有小数的数值,而字符型变量则用于存储单个字符。 1. 变量类型和表示方法: - 整型变量:包括基本的`int`类型,以及无符号型(`unsigned`)、长整型(`long`)、...

    C语言指针变量的运算_C语言中文网1

    在C语言中,指针类型需要先声明,例如`int *p`声明了一个指向整型变量的指针。 9.2 指针变量的运算 指针变量可以进行加法和减法运算,这些运算的结果取决于所指数据的类型。以文章中的代码为例,我们有三个不同类型...

    c语言中动态内存分配问题

    `sizeof(int)` 返回整型在当前系统上的字节数,通常为4字节。如果没有成功分配内存,`malloc()` 将返回 `NULL`,这时程序会输出错误信息并退出。 程序执行流程如下: - 首先,定义了一些变量,它们在栈上分配空间...

    C语言基础知识集锦.docx

    在C语言中,可以使用`sizeof`运算符来获取变量所占的字节数,这对于了解内存使用情况和优化代码非常重要。 总的来说,C语言基础知识集锦涵盖了从语言的概述到具体的数据类型和变量定义,这些内容是理解和编写C程序...

    郝斌C语言详细笔记(附源码).pdf

    ”声明了一个整型变量i并赋值为3。这里还展示了变量的命名规则以及如何声明多个变量。 4. C语言表达式和运算符:在“I=1+2;”中,说明了表达式的基本概念,如变量、常量和运算符的使用。C语言支持的运算符包括算术...

    C语言考试复习要点PPT学习教案.pptx

    整型变量(如int、short、long)的字节数依硬件平台而异,且存在如`short ≤ int ≤ long`的大小关系。对于不同的整型,其取值范围也相应变化。在32位系统中,int通常是32位,而在64位系统中可能是64位。 5. 实型...

    C语言变量类型详解(史上最全)

    - **sizeof**:是一个运算符,用于获取特定类型或变量在内存中所占的字节数。例如,`sizeof(int)`返回`int`类型的大小。 - **注意事项**:`sizeof`是一个静态运算符,其结果在编译阶段就已经确定。避免在`sizeof`...

    C语言工程设计02内存.pptx

    - `sizeof()`运算符用来获取数据类型或变量所占的内存大小,如`sizeof(p)`会返回指针`p`的大小,通常为4或8字节,而非分配的40字节。 - `_msize()`函数在Windows环境下用于获取通过`malloc()`分配的内存块的实际...

    指针实现整型的高字节和低字节分离以及位置交换

    在给定代码片段中,定义了一个无符号短整型变量`x`,并赋值为十六进制数`0x0102`,等价于十进制数258。接着,通过类型转换将`x`的地址转换为无符号字符型指针`p`。由于短整型在内存中连续占用2个字节,因此可以通过...

Global site tag (gtag.js) - Google Analytics