C语言各数据类型在内存中占用的字节

1、C语言各数据类型在内存中占用的字节由编译器决定,本测试以VS2015的X86模式运行。

2、确定数据类型后,无论变量值是多少(不超出范围),都会占用固定的内存大小(由类型决定)。

3、内存的地址和大小以16进制表示,且单位是字节,所以1个16进制(0x00000001)表示一个字节,含有8个bit。

 

#include"stdio.h"
main()
{
    int arr[3] = { 100,200,300 };
    printf("各数据类型在内存中占用的字节:\n");
    printf("int   类型占用%d个字节\n", sizeof(int));
    printf("long  类型占用%d个字节\n", sizeof(long));
    printf("float 类型占用%d个字节\n", sizeof(float));
    printf("double类型占用%d个字节\n", sizeof(double));
    printf("char  类型占用%d个字节\n", sizeof(char));
    printf("arr[0]在内存的地址:%x\n", arr);    //数组首元素可以代表地址arr[0]。
    printf("arr[1]在内存的地址:%x\n", &arr[1]);   //数组第二元素要加&。
    system("pause");
    return(0);
}

 

注意:

如果用&arr[1]-&arr[0],结果为1,相当于指针往后移动1位(p=p+1),此时的1不是字节数,代表的是指针变量值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值