gpt4 book ai didi

c - 内存中的 Int 地址增加 4

转载 作者:太空宇宙 更新时间:2023-11-04 06:06:58 25 4
gpt4 key购买 nike

#include<stdio.h>

int main()
{
int x = 1,*t;
float y = 1.50,*u;
char k = 'c',*v;

t = &x;
u = &y;
v = &k;

printf("%p %p %p", t, u, v);

t++;
u++;
v++;

printf(" %p %p %p", t, u, v);

return 0;
}

你好,我已经编写了这段代码,但这里发生了一些不寻常的事情,我正在打印地址,当我增加所有地址时,从我的角度来看,int 的增量将是 2float 将是 4char 将是 1 但我得到以下内容:

0xbffa6ef8 0xbffa6ef0 0xbffa6eff  0xbffa6efc 0xbffa6ef4 0xbffa6f00

对于 floatchar 我认为它是正确的但是对于 int 我不知道为什么会这样

最佳答案

您假设 sizeof(int) 在您的系统/环境中是 2

但是,您的假设不正确。该标准不要求 int 的大小为 2 或任何特定内容。

因为您的程序显示 int 的大小在您的系统/环境中是 4

教训:
永远不要依赖或假设类型的大小,始终使用 sizeof 来确定大小,这就是标准提供 sizeof 的原因。

关于c - 内存中的 Int 地址增加 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8556955/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com