注册 登录
编程论坛 C++教室

程序源代码中的long是什么意思?

ljh3675 发布于 2015-06-06 14:08, 936 次点击
#include "stdio.h"
union
{
    long i;
    int k;
    char m;
    char s[4];
}part;
int main()
{
    part.i=0x12345678;
    printf("part.i=%lx\n",part.i);
    printf("part.k=%x\n",part.k);[local]1[/local]
    printf("part.m=%x\n",part.m);
    printf("part.s[0]=%x\tpart.s[1]=%x\n",part.s[0],part.s[1]);
    printf("part.s[2]=%x\tpart.s[3]=%x\n",part.s[2],part.s[3]);
    return 0;
}
9 回复
#2
ljh36752015-06-06 14:14
么有人吗
#3
ljh36752015-06-06 14:18
运行结果是
12345678
12345678
78
78    56
34    12
为什么是这样的结果呀??解释一下
#4
诸葛欧阳2015-06-06 16:23
你知道什么是共用体吗?建议你先搞清楚共用体是什么
#5
ljh36752015-06-06 16:34
回复 5楼 诸葛欧阳
额额,共用体是什么?
#6
ljh36752015-06-06 16:43
回复 5楼 诸葛欧阳
共用体union和结构体struct在类型说明和变量的定义方式相同,不同的是结构体中的成员各占各自的储存空间,共用体所有的成员占用同一个储存空间,但是这个long我还是不懂它出自哪里???long int??
#7
w2009w2015-06-06 16:59
long 是C语言和C++中的一个关键字,是一种基本数据类型,在内存中占用4个字节,与int一样都是占用4个字节,取值范围也是一样的,与int类型差不多,long可用来修饰int和double。用long修饰int时,long int表示长整形,占用4个字节,此时int也可以省略。但在C++编译器中,long用8个字节表示,int和double是两个不同的数据类型。
    有用,点个攒!呵呵!
#8
诸葛欧阳2015-06-06 19:31
共用体所有数据成员占同一块内存即最大数据类型的空间,这里为long或int的大小即四个字节,long和int都是四个字节所以它们内容相同而char是一个字节所以只取低八位即内存中后1/4的内容
1