黑马程序员技术交流社区

标题: 请问输出的地址相差为什么是7而不是四个字节? [打印本页]

作者: Hi围城    时间: 2014-3-18 16:47
标题: 请问输出的地址相差为什么是7而不是四个字节?
本帖最后由 Hi围城 于 2014-3-18 17:27 编辑

#include <stdio.h>

int main()
{
    char c = 'A';
   
    int a = 10;
   
    printf("a=%p\n", &a);
    printf("c=%p\n", &c);
    return 0;
}
作者: Ygenius    时间: 2014-3-18 17:13
这个问题首先有点奇怪,比较的话也是同类型间来比较,比方说定义2个char型数据,比较这2个地址的话相差1

你的问题应该是定义的字符型数据后,整型数据的地址为什么没有紧跟着char型地址吧。不知道这个问题是否可以这么理解,内存对不同数据类型的数据划定了一定的存储空间,所以才会有像你所说的情况。更专业的你可以百度看看
作者: Hi围城    时间: 2014-3-18 17:27
Ygenius 发表于 2014-3-18 17:13
这个问题首先有点奇怪,比较的话也是同类型间来比较,比方说定义2个char型数据,比较这2个地址的话相差1

...

嗯,数据类型不一样。会单独划分空间。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2